From 8cb1fdc0c8694ecb80fbfc2287a62e7ec6d05c9e Mon Sep 17 00:00:00 2001
From: Michael Collins <mdcolli@evoforge.org>
Date: Mon, 17 Jan 2022 14:51:18 -0500
Subject: [PATCH] created BASH test scripts and directories to allow automated
 testing for changes to the rigal c compiler and the rigal code files.  Just
 checks whether the .json output of each of the legacy preloaded files
 changes.

---
 Code/test_rc_on_preloaded_examples.sh         |   48 +
 ...> Example14_microwave_oven.mp.scope1_only} |    0
 ...xample33_Component_Diagram.mp.scope1_only} |    0
 .../Example01_simple_message_flow.cpp         |  363 +++
 .../Example01_simple_message_flow.mp          |   24 +
 .../Example01_simple_message_flow.temp.txt    |    5 +
 .../Example01_simple_message_flow.temp2.txt   |    5 +
 .../Example01_simple_message_flow.tree        |  Bin 0 -> 4096 bytes
 .../Example01_simple_message_flow.txt         |   12 +
 .../Example01a_unreliable_message_flow.cpp    |  379 +++
 .../Example01a_unreliable_message_flow.mp     |   16 +
 ...xample01a_unreliable_message_flow.temp.txt |    5 +
 ...ample01a_unreliable_message_flow.temp2.txt |    5 +
 .../Example01a_unreliable_message_flow.tree   |  Bin 0 -> 4096 bytes
 .../Example01a_unreliable_message_flow.txt    |   12 +
 .../Example02_Data_flow.cpp                   |  484 ++++
 .../Example02_Data_flow.mp                    |   39 +
 .../Example02_Data_flow.temp.txt              |    5 +
 .../Example02_Data_flow.temp2.txt             |    5 +
 .../Example02_Data_flow.tree                  |  Bin 0 -> 5632 bytes
 .../Example02_Data_flow.txt                   |   15 +
 .../Example03_ATM_withdrawal.cpp              | 1032 ++++++++
 .../Example03_ATM_withdrawal.mp               |   83 +
 .../Example03_ATM_withdrawal.temp.txt         |    5 +
 .../Example03_ATM_withdrawal.temp2.txt        |    5 +
 .../Example03_ATM_withdrawal.tree             |  Bin 0 -> 13312 bytes
 .../Example03_ATM_withdrawal.txt              |   15 +
 .../Example04_Stack_behavior.cpp              |  562 ++++
 .../Example04_Stack_behavior.mp               |   53 +
 .../Example04_Stack_behavior.temp.txt         |    5 +
 .../Example04_Stack_behavior.temp2.txt        |    5 +
 .../Example04_Stack_behavior.tree             |  Bin 0 -> 7168 bytes
 .../Example04_Stack_behavior.txt              |    9 +
 .../Example04a_Queue_behavior.cpp             |  560 ++++
 .../Example04a_Queue_behavior.mp              |   45 +
 .../Example04a_Queue_behavior.temp.txt        |    5 +
 .../Example04a_Queue_behavior.temp2.txt       |    5 +
 .../Example04a_Queue_behavior.tree            |  Bin 0 -> 7168 bytes
 .../Example04a_Queue_behavior.txt             |    9 +
 .../Example05_Car_Race.cpp                    | 1130 ++++++++
 .../Example05_Car_Race.mp                     |   64 +
 .../Example05_Car_Race.temp.txt               |    5 +
 .../Example05_Car_Race.temp2.txt              |    5 +
 .../Example05_Car_Race.tree                   |  Bin 0 -> 15360 bytes
 .../Example05_Car_Race.txt                    |   15 +
 .../Example06_Assertion_Checking.cpp          |  690 +++++
 .../Example06_Assertion_Checking.mp           |   57 +
 .../Example06_Assertion_Checking.temp.txt     |    5 +
 .../Example06_Assertion_Checking.temp2.txt    |    5 +
 .../Example06_Assertion_Checking.tree         |  Bin 0 -> 7168 bytes
 .../Example06_Assertion_Checking.txt          |   15 +
 .../Example07_Unconstrained_Stack.cpp         |  544 ++++
 .../Example07_Unconstrained_Stack.mp          |   50 +
 .../Example07_Unconstrained_Stack.temp.txt    |    5 +
 .../Example07_Unconstrained_Stack.temp2.txt   |    5 +
 .../Example07_Unconstrained_Stack.tree        |  Bin 0 -> 7168 bytes
 .../Example07_Unconstrained_Stack.txt         |    9 +
 .../Example08_Operational_Process.cpp         | 1439 ++++++++++
 .../Example08_Operational_Process.mp          |  123 +
 .../Example08_Operational_Process.temp.txt    |    5 +
 .../Example08_Operational_Process.temp2.txt   |    5 +
 .../Example08_Operational_Process.tree        |  Bin 0 -> 18944 bytes
 .../Example08_Operational_Process.txt         |   15 +
 .../Example09_Employee_Employer.cpp           |  541 ++++
 .../Example09_Employee_Employer.mp            |   50 +
 .../Example09_Employee_Employer.temp.txt      |    5 +
 .../Example09_Employee_Employer.temp2.txt     |    5 +
 .../Example09_Employee_Employer.tree          |  Bin 0 -> 5632 bytes
 .../Example09_Employee_Employer.txt           |    9 +
 .../Example10_Pipe_Filter.cpp                 | 1176 +++++++++
 .../Example10_Pipe_Filter.mp                  |   55 +
 .../Example10_Pipe_Filter.temp.txt            |    5 +
 .../Example10_Pipe_Filter.temp2.txt           |    5 +
 .../Example10_Pipe_Filter.tree                |  Bin 0 -> 14848 bytes
 .../Example10_Pipe_Filter.txt                 |   18 +
 .../Example11_Publish_Subscribe.cpp           | 1213 +++++++++
 .../Example11_Publish_Subscribe.mp            |   89 +
 .../Example11_Publish_Subscribe.temp.txt      |    5 +
 .../Example11_Publish_Subscribe.temp2.txt     |    5 +
 .../Example11_Publish_Subscribe.tree          |  Bin 0 -> 14848 bytes
 .../Example11_Publish_Subscribe.txt           |   14 +
 .../Example12_network_topology_ring.cpp       |  627 +++++
 .../Example12_network_topology_ring.mp        |   75 +
 .../Example12_network_topology_ring.temp.txt  |    5 +
 .../Example12_network_topology_ring.temp2.txt |    5 +
 .../Example12_network_topology_ring.tree      |  Bin 0 -> 8192 bytes
 .../Example12_network_topology_ring.txt       |   10 +
 .../Example13_FiniteStateDiagram.cpp          |  959 +++++++
 .../Example13_FiniteStateDiagram.mp           |   80 +
 .../Example13_FiniteStateDiagram.temp.txt     |    5 +
 .../Example13_FiniteStateDiagram.temp2.txt    |    5 +
 .../Example13_FiniteStateDiagram.tree         |  Bin 0 -> 13824 bytes
 .../Example13_FiniteStateDiagram.txt          |   31 +
 .../Example15_Petri_net.cpp                   | 1996 ++++++++++++++
 .../Example15_Petri_net.mp                    |  111 +
 .../Example15_Petri_net.temp.txt              |    5 +
 .../Example15_Petri_net.temp2.txt             |    5 +
 .../Example15_Petri_net.tree                  |  Bin 0 -> 32256 bytes
 .../Example15_Petri_net.txt                   |   46 +
 .../Example16_software_spiral_process.cpp     | 1058 ++++++++
 .../Example16_software_spiral_process.mp      |   82 +
 ...Example16_software_spiral_process.temp.txt |    5 +
 ...xample16_software_spiral_process.temp2.txt |    5 +
 .../Example16_software_spiral_process.tree    |  Bin 0 -> 11264 bytes
 .../Example16_software_spiral_process.txt     |   26 +
 .../Example17_Dining_Philosophers.cpp         |  881 +++++++
 .../Example17_Dining_Philosophers.mp          |   90 +
 .../Example17_Dining_Philosophers.temp.txt    |    5 +
 .../Example17_Dining_Philosophers.temp2.txt   |    5 +
 .../Example17_Dining_Philosophers.tree        |  Bin 0 -> 12800 bytes
 .../Example17_Dining_Philosophers.txt         |   18 +
 .../Example18_Workflow_pattern.cpp            |  458 ++++
 .../Example18_Workflow_pattern.mp             |   30 +
 .../Example18_Workflow_pattern.temp.txt       |    5 +
 .../Example18_Workflow_pattern.temp2.txt      |    5 +
 .../Example18_Workflow_pattern.tree           |  Bin 0 -> 5632 bytes
 .../Example18_Workflow_pattern.txt            |   11 +
 .../Example19_Consumers_Suppliers.cpp         | 1433 ++++++++++
 .../Example19_Consumers_Suppliers.mp          |  101 +
 .../Example19_Consumers_Suppliers.temp.txt    |    5 +
 .../Example19_Consumers_Suppliers.temp2.txt   |    5 +
 .../Example19_Consumers_Suppliers.tree        |  Bin 0 -> 18944 bytes
 .../Example19_Consumers_Suppliers.txt         |   20 +
 .../Example20_MP_model__reuse.cpp             | 1105 ++++++++
 .../Example20_MP_model__reuse.mp              |   89 +
 .../Example20_MP_model__reuse.temp.txt        |    5 +
 .../Example20_MP_model__reuse.temp2.txt       |    5 +
 .../Example20_MP_model__reuse.tree            |  Bin 0 -> 15872 bytes
 .../Example20_MP_model__reuse.txt             |   20 +
 .../Example21_compiler1.cpp                   | 1536 +++++++++++
 .../Example21_compiler1.mp                    |   86 +
 .../Example21_compiler1.temp.txt              |    5 +
 .../Example21_compiler1.temp2.txt             |    5 +
 .../Example21_compiler1.tree                  |  Bin 0 -> 19968 bytes
 .../Example21_compiler1.txt                   |   35 +
 .../Example22_compiler2.cpp                   | 1109 ++++++++
 .../Example22_compiler2.mp                    |   80 +
 .../Example22_compiler2.temp.txt              |    5 +
 .../Example22_compiler2.temp2.txt             |    5 +
 .../Example22_compiler2.tree                  |  Bin 0 -> 15872 bytes
 .../Example22_compiler2.txt                   |   30 +
 .../Example23_number_attributes.cpp           |  823 ++++++
 .../Example23_number_attributes.mp            |   38 +
 .../Example23_number_attributes.temp.txt      |    5 +
 .../Example23_number_attributes.temp2.txt     |    5 +
 .../Example23_number_attributes.tree          |  Bin 0 -> 10752 bytes
 .../Example23_number_attributes.txt           |   15 +
 .../Example24_Bayesian_probability.cpp        |  690 +++++
 .../Example24_Bayesian_probability.mp         |   56 +
 .../Example24_Bayesian_probability.temp.txt   |    5 +
 .../Example24_Bayesian_probability.temp2.txt  |    5 +
 .../Example24_Bayesian_probability.tree       |  Bin 0 -> 10240 bytes
 .../Example24_Bayesian_probability.txt        |    9 +
 .../Example25_interval_attributes.cpp         |  530 ++++
 .../Example25_interval_attributes.mp          |   28 +
 .../Example25_interval_attributes.temp.txt    |    5 +
 .../Example25_interval_attributes.temp2.txt   |    5 +
 .../Example25_interval_attributes.tree        |  Bin 0 -> 7680 bytes
 .../Example25_interval_attributes.txt         |   13 +
 .../Example26_timing_attributes.cpp           |  542 ++++
 .../Example26_timing_attributes.mp            |   42 +
 .../Example26_timing_attributes.temp.txt      |    5 +
 .../Example26_timing_attributes.temp2.txt     |    5 +
 .../Example26_timing_attributes.tree          |  Bin 0 -> 7680 bytes
 .../Example26_timing_attributes.txt           |   15 +
 .../Example27_Railroad_Crossing.cpp           |  960 +++++++
 .../Example27_Railroad_Crossing.mp            |   71 +
 .../Example27_Railroad_Crossing.temp.txt      |    5 +
 .../Example27_Railroad_Crossing.temp2.txt     |    5 +
 .../Example27_Railroad_Crossing.tree          |  Bin 0 -> 13312 bytes
 .../Example27_Railroad_Crossing.txt           |   15 +
 .../Example28_MP_model_of_MP_architecture     |  Bin 0 -> 222672 bytes
 .../Example28_MP_model_of_MP_architecture.cpp | 1681 ++++++++++++
 ...Example28_MP_model_of_MP_architecture.json |    0
 .../Example28_MP_model_of_MP_architecture.mp  |  148 ++
 ...ple28_MP_model_of_MP_architecture.temp.txt |    5 +
 ...le28_MP_model_of_MP_architecture.temp2.txt |    5 +
 ...Example28_MP_model_of_MP_architecture.tree |  Bin 0 -> 24576 bytes
 .../Example28_MP_model_of_MP_architecture.txt |   19 +
 .../Example29_stack1_Bayesian_probability.cpp |  587 +++++
 .../Example29_stack1_Bayesian_probability.mp  |   95 +
 ...ple29_stack1_Bayesian_probability.temp.txt |    5 +
 ...le29_stack1_Bayesian_probability.temp2.txt |    5 +
 ...Example29_stack1_Bayesian_probability.tree |  Bin 0 -> 8704 bytes
 .../Example29_stack1_Bayesian_probability.txt |    9 +
 .../Example30_Local_Report.cpp                |  587 +++++
 .../Example30_Local_Report.mp                 |   29 +
 .../Example30_Local_Report.temp.txt           |    5 +
 .../Example30_Local_Report.temp2.txt          |    5 +
 .../Example30_Local_Report.tree               |  Bin 0 -> 8192 bytes
 .../Example30_Local_Report.txt                |   15 +
 .../Example31_Global_report.cpp               |  542 ++++
 .../Example31_Global_report.mp                |   31 +
 .../Example31_Global_report.temp.txt          |    5 +
 .../Example31_Global_report.temp2.txt         |    5 +
 .../Example31_Global_report.tree              |  Bin 0 -> 7680 bytes
 .../Example31_Global_report.txt               |   12 +
 .../Example32_Local_graph.cpp                 | 1065 ++++++++
 .../Example32_Local_graph.mp                  |   67 +
 .../Example32_Local_graph.temp.txt            |    5 +
 .../Example32_Local_graph.temp2.txt           |    5 +
 .../Example32_Local_graph.tree                |  Bin 0 -> 16896 bytes
 .../Example32_Local_graph.txt                 |   15 +
 .../Example34_Graph_as_data_structure.cpp     |  434 +++
 .../Example34_Graph_as_data_structure.mp      |   50 +
 ...Example34_Graph_as_data_structure.temp.txt |    5 +
 ...xample34_Graph_as_data_structure.temp2.txt |    5 +
 .../Example34_Graph_as_data_structure.tree    |  Bin 0 -> 8704 bytes
 .../Example34_Graph_as_data_structure.txt     |   11 +
 .../Example35_Finite_State_Diagram.cpp        | 1150 ++++++++
 .../Example35_Finite_State_Diagram.mp         |   97 +
 .../Example35_Finite_State_Diagram.temp.txt   |    5 +
 .../Example35_Finite_State_Diagram.temp2.txt  |    5 +
 .../Example35_Finite_State_Diagram.tree       |  Bin 0 -> 18944 bytes
 .../Example35_Finite_State_Diagram.txt        |   35 +
 .../Example36_Statechart.cpp                  | 1168 ++++++++
 .../Example36_Statechart.mp                   |   83 +
 .../Example36_Statechart.temp.txt             |    5 +
 .../Example36_Statechart.temp2.txt            |    5 +
 .../Example36_Statechart.tree                 |  Bin 0 -> 16384 bytes
 .../Example36_Statechart.txt                  |   15 +
 .../Example37_GLOBAL_query.cpp                |  523 ++++
 .../Example37_GLOBAL_query.mp                 |   61 +
 .../Example37_GLOBAL_query.temp.txt           |    5 +
 .../Example37_GLOBAL_query.temp2.txt          |    5 +
 .../Example37_GLOBAL_query.tree               |  Bin 0 -> 9728 bytes
 .../Example37_GLOBAL_query.txt                |   11 +
 .../Example38_knapsack.cpp                    |  881 +++++++
 .../Example38_knapsack.mp                     |   81 +
 .../Example38_knapsack.temp.txt               |    5 +
 .../Example38_knapsack.temp2.txt              |    5 +
 .../Example38_knapsack.tree                   |  Bin 0 -> 17408 bytes
 .../Example38_knapsack.txt                    |   15 +
 .../Example39_turtles.cpp                     | 2346 +++++++++++++++++
 .../Example39_turtles.mp                      |  132 +
 .../Example39_turtles.temp.txt                |    5 +
 .../Example39_turtles.temp2.txt               |    5 +
 .../Example39_turtles.tree                    |  Bin 0 -> 36864 bytes
 .../Example39_turtles.txt                     |   18 +
 .../Example40_web_browsers.cpp                | 1295 +++++++++
 .../Example40_web_browsers.mp                 |  107 +
 .../Example40_web_browsers.temp.txt           |    5 +
 .../Example40_web_browsers.temp2.txt          |    5 +
 .../Example40_web_browsers.tree               |  Bin 0 -> 19968 bytes
 .../Example40_web_browsers.txt                |   17 +
 .../Example41_Replay_Attack.cpp               |  971 +++++++
 .../Example41_Replay_Attack.mp                |   63 +
 .../Example41_Replay_Attack.temp.txt          |    5 +
 .../Example41_Replay_Attack.temp2.txt         |    5 +
 .../Example41_Replay_Attack.tree              |  Bin 0 -> 12288 bytes
 .../Example41_Replay_Attack.txt               |   17 +
 .../Example42_Bar_Chart.cpp                   |  409 +++
 .../Example42_Bar_Chart.mp                    |   53 +
 .../Example42_Bar_Chart.temp.txt              |    5 +
 .../Example42_Bar_Chart.temp2.txt             |    5 +
 .../Example42_Bar_Chart.tree                  |  Bin 0 -> 6656 bytes
 .../Example42_Bar_Chart.txt                   |    7 +
 .../Example43_Histogram.cpp                   |  373 +++
 .../Example43_Histogram.mp                    |   48 +
 .../Example43_Histogram.temp.txt              |    5 +
 .../Example43_Histogram.temp2.txt             |    5 +
 .../Example43_Histogram.tree                  |  Bin 0 -> 8704 bytes
 .../Example43_Histogram.txt                   |    9 +
 .../Example44_Gantt_Chart.cpp                 |  558 ++++
 .../Example44_Gantt_Chart.mp                  |   39 +
 .../Example44_Gantt_Chart.temp.txt            |    5 +
 .../Example44_Gantt_Chart.temp2.txt           |    5 +
 .../Example44_Gantt_Chart.tree                |  Bin 0 -> 7680 bytes
 .../Example44_Gantt_Chart.txt                 |    9 +
 .../Example45_Martian_Lander.cpp              | 1433 ++++++++++
 .../Example45_Martian_Lander.mp               |  163 ++
 .../Example45_Martian_Lander.temp.txt         |    5 +
 .../Example45_Martian_Lander.temp2.txt        |    5 +
 .../Example45_Martian_Lander.tree             |  Bin 0 -> 24576 bytes
 .../Example45_Martian_Lander.txt              |   17 +
 .../Example01_simple_message_flow.json        |   19 +
 .../Example01a_unreliable_message_flow.json   |   27 +
 .../Example02_Data_flow.json                  |   27 +
 .../Example03_ATM_withdrawal.json             |   35 +
 .../Example04_Stack_behavior.json             |   19 +
 .../Example04a_Queue_behavior.json            |   19 +
 .../Example05_Car_Race.json                   |   35 +
 .../Example06_Assertion_Checking.json         |   35 +
 .../Example07_Unconstrained_Stack.json        |   27 +
 .../Example08_Operational_Process.json        |   11 +
 .../Example09_Employee_Employer.json          |   11 +
 .../Example10_Pipe_Filter.json                |   35 +
 .../Example11_Publish_Subscribe.json          |   11 +
 .../Example12_network_topology_ring.json      |   13 +
 .../Example13_FiniteStateDiagram.json         |   35 +
 .../Example15_Petri_net.json                  |   23 +
 .../Example16_software_spiral_process.json    |   27 +
 .../Example17_Dining_Philosophers.json        |    0
 .../Example18_Workflow_pattern.json           |   19 +
 .../Example19_Consumers_Suppliers.json        |   22 +
 .../Example20_MP_model__reuse.json            |   27 +
 .../Example21_compiler1.json                  |   19 +
 .../Example22_compiler2.json                  |   19 +
 .../Example23_number_attributes.json          |   75 +
 .../Example24_Bayesian_probability.json       |   59 +
 .../Example25_interval_attributes.json        |   19 +
 .../Example26_timing_attributes.json          |   19 +
 .../Example27_Railroad_Crossing.json          |   11 +
 ...Example28_MP_model_of_MP_architecture.json |  135 +
 ...Example29_stack1_Bayesian_probability.json |   19 +
 .../Example30_Local_Report.json               |   33 +
 .../Example31_Global_report.json              |   29 +
 .../Example32_Local_graph.json                |   51 +
 .../Example34_Graph_as_data_structure.json    |   33 +
 .../Example35_Finite_State_Diagram.json       |   55 +
 .../Example36_Statechart.json                 |   39 +
 .../Example37_GLOBAL_query.json               |   21 +
 .../Example38_knapsack.json                   |   37 +
 .../Example39_turtles.json                    |  107 +
 .../Example40_web_browsers.json               |   33 +
 .../Example41_Replay_Attack.json              |   19 +
 .../Example42_Bar_Chart.json                  |   19 +
 .../Example43_Histogram.json                  |   39 +
 .../Example44_Gantt_Chart.json                |   15 +
 .../Example45_Martian_Lander.json             |   54 +
 .../Example01_simple_message_flow.json        |   27 +
 .../Example01a_unreliable_message_flow.json   |   59 +
 .../Example02_Data_flow.json                  |  227 ++
 .../Example03_ATM_withdrawal.json             |  107 +
 .../Example04_Stack_behavior.json             |   36 +
 .../Example04a_Queue_behavior.json            |   36 +
 .../Example05_Car_Race.json                   |  243 ++
 .../Example06_Assertion_Checking.json         |  107 +
 .../Example07_Unconstrained_Stack.json        |   59 +
 .../Example08_Operational_Process.json        |   11 +
 .../Example09_Employee_Employer.json          |   11 +
 .../Example10_Pipe_Filter.json                |  155 ++
 .../Example11_Publish_Subscribe.json          |  411 +++
 .../Example12_network_topology_ring.json      |  323 +++
 .../Example13_FiniteStateDiagram.json         |  243 ++
 .../Example15_Petri_net.json                  |   39 +
 .../Example16_software_spiral_process.json    |   59 +
 .../Example17_Dining_Philosophers.json        |   19 +
 .../Example18_Workflow_pattern.json           |   19 +
 .../Example19_Consumers_Suppliers.json        | 1083 ++++++++
 .../Example20_MP_model__reuse.json            |   51 +
 .../Example21_compiler1.json                  | 1179 +++++++++
 .../Example22_compiler2.json                  |  891 +++++++
 .../Example23_number_attributes.json          |  395 +++
 .../Example24_Bayesian_probability.json       |   59 +
 .../Example25_interval_attributes.json        |   43 +
 .../Example26_timing_attributes.json          |   99 +
 .../Example27_Railroad_Crossing.json          |   19 +
 ...Example28_MP_model_of_MP_architecture.json | 2183 +++++++++++++++
 ...Example29_stack1_Bayesian_probability.json |   35 +
 .../Example30_Local_Report.json               |  283 ++
 .../Example31_Global_report.json              |   61 +
 .../Example32_Local_graph.json                |  363 +++
 .../Example34_Graph_as_data_structure.json    |  121 +
 .../Example35_Finite_State_Diagram.json       |  367 +++
 .../Example36_Statechart.json                 |  111 +
 .../Example37_GLOBAL_query.json               |   53 +
 .../Example38_knapsack.json                   |   37 +
 .../Example39_turtles.json                    |  107 +
 .../Example40_web_browsers.json               |   73 +
 .../Example41_Replay_Attack.json              |   51 +
 .../Example42_Bar_Chart.json                  |   19 +
 .../Example43_Histogram.json                  |   47 +
 .../Example44_Gantt_Chart.json                |   15 +
 .../Example45_Martian_Lander.json             |  275 ++
 .../test_mp_given_rc_changes.sh               |   13 +
 RIGAL/rigsc.446/TEST_MP_PRELOADS/welcome.sh   |  196 ++
 367 files changed, 57063 insertions(+)
 create mode 100755 Code/test_rc_on_preloaded_examples.sh
 rename Firebird_Pre_loaded_examples/{Example14_microwave_oven.mp => Example14_microwave_oven.mp.scope1_only} (100%)
 rename Firebird_Pre_loaded_examples/{Example33_Component_Diagram.mp => Example33_Component_Diagram.mp.scope1_only} (100%)
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.cpp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.mp
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp2.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.tree
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.txt
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01_simple_message_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01a_unreliable_message_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example02_Data_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example03_ATM_withdrawal.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04_Stack_behavior.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04a_Queue_behavior.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example05_Car_Race.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example06_Assertion_Checking.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example07_Unconstrained_Stack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example08_Operational_Process.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example09_Employee_Employer.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example10_Pipe_Filter.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example11_Publish_Subscribe.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example12_network_topology_ring.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example13_FiniteStateDiagram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example15_Petri_net.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example16_software_spiral_process.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example17_Dining_Philosophers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example18_Workflow_pattern.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example19_Consumers_Suppliers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example20_MP_model__reuse.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example21_compiler1.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example22_compiler2.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example23_number_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example24_Bayesian_probability.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example25_interval_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example26_timing_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example27_Railroad_Crossing.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example28_MP_model_of_MP_architecture.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example29_stack1_Bayesian_probability.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example30_Local_Report.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example31_Global_report.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example32_Local_graph.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example34_Graph_as_data_structure.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example35_Finite_State_Diagram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example36_Statechart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example37_GLOBAL_query.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example38_knapsack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example39_turtles.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example40_web_browsers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example41_Replay_Attack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example42_Bar_Chart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example43_Histogram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example44_Gantt_Chart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example45_Martian_Lander.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01_simple_message_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01a_unreliable_message_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example02_Data_flow.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example03_ATM_withdrawal.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04_Stack_behavior.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04a_Queue_behavior.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example05_Car_Race.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example06_Assertion_Checking.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example07_Unconstrained_Stack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example08_Operational_Process.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example09_Employee_Employer.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example10_Pipe_Filter.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example11_Publish_Subscribe.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example12_network_topology_ring.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example13_FiniteStateDiagram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example15_Petri_net.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example16_software_spiral_process.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example17_Dining_Philosophers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example18_Workflow_pattern.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example19_Consumers_Suppliers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example20_MP_model__reuse.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example21_compiler1.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example22_compiler2.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example23_number_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example24_Bayesian_probability.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example25_interval_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example26_timing_attributes.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example27_Railroad_Crossing.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example28_MP_model_of_MP_architecture.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example29_stack1_Bayesian_probability.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example30_Local_Report.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example31_Global_report.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example32_Local_graph.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example34_Graph_as_data_structure.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example35_Finite_State_Diagram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example36_Statechart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example37_GLOBAL_query.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example38_knapsack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example39_turtles.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example40_web_browsers.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example41_Replay_Attack.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example42_Bar_Chart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example43_Histogram.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example44_Gantt_Chart.json
 create mode 100644 RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example45_Martian_Lander.json
 create mode 100755 RIGAL/rigsc.446/TEST_MP_PRELOADS/test_mp_given_rc_changes.sh
 create mode 100755 RIGAL/rigsc.446/TEST_MP_PRELOADS/welcome.sh

diff --git a/Code/test_rc_on_preloaded_examples.sh b/Code/test_rc_on_preloaded_examples.sh
new file mode 100755
index 0000000..364247b
--- /dev/null
+++ b/Code/test_rc_on_preloaded_examples.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# Show the help text
+if [[ "$1" == "-h" ]] || [[ -z "$*" ]]; then
+  echo "Usage: `basename $0 $1` [mp_filepath] [scope]"
+  exit 0
+fi
+
+# Setup the /build folder
+if [ ! -d "build" ]; then
+  mkdir build  
+fi 
+if [ ! -d "output" ]; then
+  mkdir output  
+fi 
+if [ ! -f build/Include.h ]; then
+  cp Code/*.rig build/
+  cp Code/*.h build/
+fi
+
+# Copy the mp file into the build folder
+cp $1 build/
+
+# Switch to build folder and run build scripts
+cd build
+mp_filename=$(basename $1)
+mp_basename="${mp_filename%.*}"
+rig='../RIGAL/rigsc.446/bin'
+
+# 1. Compile parser
+$rig/rc MP2-parser
+# 2. Run parser to create tree
+$rig/ic MP2-parser $mp_basename tree $2 > temp.txt
+# 3. Compile generator
+$rig/rc MP2-generator
+# 4. Run generator to create C++ code
+$rig/ic MP2-generator tree > temp2.txt
+rm tree *.rsc
+echo "C++ compiler: g++ $mp_basename.cpp -o $mp_basename -fast"
+#time /Developer/usr/bin/g++ "$mp_basename.cpp" -o $mp_basename -fast
+# 5. Compile the C++ code
+time g++ "${mp_basename}.cpp" -o $mp_basename -Ofast
+echo "$mp_basename run: $mp_basename>$mp_basename.txt"
+# 6. Run the compiled C++ program 
+time ./$mp_basename>"${mp_basename}.txt"
+echo "Completed $mp_basename for scope $2"
+mv $mp_basename.json ../output/
+rm $mp_basename xd RIGCOMP.TMP 
diff --git a/Firebird_Pre_loaded_examples/Example14_microwave_oven.mp b/Firebird_Pre_loaded_examples/Example14_microwave_oven.mp.scope1_only
similarity index 100%
rename from Firebird_Pre_loaded_examples/Example14_microwave_oven.mp
rename to Firebird_Pre_loaded_examples/Example14_microwave_oven.mp.scope1_only
diff --git a/Firebird_Pre_loaded_examples/Example33_Component_Diagram.mp b/Firebird_Pre_loaded_examples/Example33_Component_Diagram.mp.scope1_only
similarity index 100%
rename from Firebird_Pre_loaded_examples/Example33_Component_Diagram.mp
rename to Firebird_Pre_loaded_examples/Example33_Component_Diagram.mp.scope1_only
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.cpp
new file mode 100644
index 0000000..6e04a19
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.cpp
@@ -0,0 +1,363 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA simple_message_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send
+    , Event_receive
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_15_16
+       // ADD operations 
+       // ROOT events 
+    , Event_Sender
+    , Event_Receiver
+       // main schema event 
+    , Event_simple_message_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send"
+     , "receive"
+     , "SIMPLE_LIST_15_16"
+     , "Sender"
+     , "Receiver"
+     , "simple_message_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_15_16_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_15_16_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Sender_source = Root_table[Event_Sender]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  Receiver_source = Root_table[Event_Receiver]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Sender_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  Receiver_source ]){ 
+       if( (  (Stack[i]->name == Event_receive))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_15_16_ob class
+
+//---- 2 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 3 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 4 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Sender){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 5 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_Receiver){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 6 ---- 
+class SCHEMA_simple_message_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_simple_message_flow(): Composite_producer(Event_simple_message_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Sender);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Receiver);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_15_16_ob(Event_SIMPLE_LIST_15_16);
+    } 
+};// end class SCHEMA_simple_message_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example01_simple_message_flow.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_7; temp_7.harvest();
+    Comp_7_8 temp_8; temp_8.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_simple_message_flow temp_9; temp_9.harvest();
+   temp_9.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"simple_message_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.mp
new file mode 100644
index 0000000..0ea964f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.mp
@@ -0,0 +1,24 @@
+/* 
+Example1_simple_message_flow.mp
+	 
+Event grammar rules for each root define derivations for event traces,
+in this case a simple sequence of zero or more events for each root.
+
+The COORDINATE composition takes two root traces and produces 
+a modified event trace, merging behaviors of Sender and Receiver 
+and adding the PRECEDES relation for the selected send/receive pairs.
+The coordination operation behaves as a "cross-cutting" derivation rule.
+
+Run for scopes 1 and up. The "Sequence" or "Swim Lanes" layouts are 
+the most appropriate for browsing traces here.
+
+*/
+
+SCHEMA simple_message_flow
+
+ROOT Sender:   (* send *);
+ROOT Receiver: (* receive *);
+
+COORDINATE	$x: send 	FROM Sender, 
+			$y: receive FROM Receiver
+	DO ADD $x PRECEDES $y; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp.txt
new file mode 100644
index 0000000..083c801
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example01_simple_message_flow tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.tree
new file mode 100644
index 0000000000000000000000000000000000000000..b57d54d66da4179d63f01a8b2fb99bd044cb2634
GIT binary patch
literal 4096
zcmeHKPi)&%9DYd?CvDl<ZZJw=Fvj>lx@O(Fa)PbNL{Vw0wufpUJvqtCYT?+%cG`6s
z91ubr08Q0|xWEB8AcQy$E=Y*u#1U~sJt9sBO%npi=KDR{jbEKkh|>=HS<d(J-uHh0
z{hZVpV|};=fFuF#5MP2E@E%|ucnJ3>V;Wm627QcSsSh9}Jc_mBxToR?0PQ0w;|7-%
za0La-zX*Lr;5ncMtO85GdEBeyM^5swg)J>Ctb}zMWhKLFW;ry|$MU!$3E)iFVr;{9
zUnfipTw*~##Ro*}%DzGDTf;nJ3f=TBmFEeo8D0TzA9%pD6reHKkNLN-J_LLZI1JoM
zv&jCfVgP#@JFk&F>CXt+p(~Q$0QOzO{)51efK;cCqqRMGpT)c{BA&+9##S)Q#Q6<)
z6z6vlFZoR8JAgmokI9OP8so19_mbad-k|zP|L>DMkfS~z34e+({h9bL`RFxpyZm3$
z%xE0OaqJmyl9%m>zb7xr%kMpS_ruql-F`6*&kt{Pd4*`m{7pxM@YvGZBFyJl-EMA%
zg&Yg_=VaA-@<wCc7<k8I&v)Y;Pcju70EFAoSjo$D4_+LH#y<F*`d#6l>%ouX(b(JH
z2BUGmJ)ri5jBhTEZ(h|=fQ4WT{w=EWUC*PDtm}if(R)GNzoYjxb$+*As;iRU)~-6N
zA-`^qIwZWL4p+c?SLFp%|Esy^yx2mV58?YY@IK9<zb|YBhbdou8a?;QbM!EHUxNP#
z@Q~`U#+EfYA2R%}_Tpci2#&})=96<Q{2D%>ztR#SP7;~7M`8E6x}N6J7^_`<KR_S)
zFfAeSL9(OohPs~S(pY1EoCuD_{qxwa_>RG!pAp~Vz+Y88q+dQSzp3-P^_STv*J&=n
z^m!!v^UvP<G24yvCgQ}MmLyOAOW!T%!=08e&QrQCgC`L8Ux@!n;NQTffQ3BHhrDt=
zNZx2Z;*9}`cMQDoJk_gvK1?T_(6t=K`P0~qqruZmzRQDWx+tGN)Irg6u7@7@N0QD*
z!)`laHOnQQ?2l*R=lS02#37OPQGdn$OW8dk;wH)1e>uw~-hZ{Pod4-_eJ;=BxjrB1
zM<2`QS!4fb(R=vKYH*zVpDxjJtFc;X=e_*gu6S0nK8CU0jQu+5JC3|H^U?WYCHBAf
z&Q_~xo}3<fv5!RN^#tXMu1JCj=)Da672rF-lfVxnembw~x{LEItDCfBcw4=B8hgJK
zOvZkozmht~uIxZEf4BbleMS9u2i5-+s-$_1HPP0~!t^;k4@IwGJK~^cv>j9Mw(vat
zqTnsl-WV_}r{nXMVTwV!<0s>yYumoJPxtM%(cofTSiW~4-mW)%!?vW}BehF9shp_r
z9=gZd&f(h<v}L?&g<D<{4PmScx8z2H{g&9^<N^2fx+z9f!?xoMUNr5xZXyEx;>hys
zD~oeAJ~z9(!YikFWvbupAWC|V^wXaMPQT=eE#34)c?O3cpX8^a!5Kc?kG!}#1ynYC
z8rg1X)^~Y@pB#!NC{~$1Ie(f@4SIIRZHOqbj;R~gAQCBDUbj0|bFkw;V?5SP=(M1I
zT?{)eT&^3Y;cv>V12YQ?OV!!=vn#dX8QXT728e=JCVA!5z$K2y*`VMDHg|^QWNyS0
zriiNG=suayBA<$)?f9Gcp-8g*!jQLVHP&3)GA_#yOI6X*JEpIutimfN_qoE96zN(S
mXBK~+S0;)r!}WX|p$*$=mJ?2Saj7;_tJaqNyY;{G>i;j)tRIp9

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.txt
new file mode 100644
index 0000000..740b652
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01_simple_message_flow.txt
@@ -0,0 +1,12 @@
+generating traces for scope 1 
+completed Sender: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Receiver: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed simple_message_flow: 	2 traces (0 MARKed) 	8 events 
+		average 4 ev/trace 	min 3 	max 5
+
+Elapsed time 0.000214 sec, Speed: 65420.6 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.cpp
new file mode 100644
index 0000000..04910f6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.cpp
@@ -0,0 +1,379 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA unreliable_message_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send
+    , Event_receive
+    , Event_does_not_receive
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+       // ADD operations 
+       // ROOT events 
+    , Event_Sender
+    , Event_Receiver
+       // main schema event 
+    , Event_unreliable_message_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send"
+     , "receive"
+     , "does_not_receive"
+     , "SIMPLE_LIST_17_18"
+     , "Sender"
+     , "Receiver"
+     , "unreliable_message_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Sender_source = Root_table[Event_Sender]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  Receiver_source = Root_table[Event_Receiver]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Sender_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  Receiver_source ]){ 
+       if( (  (Stack[i]->name == Event_receive)|| (Stack[i]->name == Event_does_not_receive)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 2 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 3 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive); 
+      element[ 1 ]=  new Atomic_producer(Event_does_not_receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 4 ---- 
+class Itr_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_5_6 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_7_8 
+
+//---- 5 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Sender){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 6 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Receiver){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_7_8 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 7 ---- 
+class SCHEMA_unreliable_message_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_unreliable_message_flow(): Composite_producer(Event_unreliable_message_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Sender);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Receiver);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18);
+    } 
+};// end class SCHEMA_unreliable_message_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example01a_unreliable_message_flow.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_8; temp_8.harvest();
+    Comp_9_10 temp_9; temp_9.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_unreliable_message_flow temp_10; temp_10.harvest();
+   temp_10.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"unreliable_message_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.mp
new file mode 100644
index 0000000..d714bd0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.mp
@@ -0,0 +1,16 @@
+/* Example 1a
+Unreliable message flow.
+
+We may want to specify behaviors when some messages get lost in the transition. 
+It can be done using ‘virtual’ events.
+
+run for scopes 1 and up.
+
+*/
+SCHEMA unreliable_message_flow
+ROOT 	Sender: 	(* send *);
+ROOT 	Receiver: 	(* (receive | does_not_receive) *);
+
+COORDINATE 	$x: send 							FROM Sender, 
+			$y: (receive | does_not_receive)	FROM Receiver 
+	DO 	ADD $x PRECEDES $y; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp.txt
new file mode 100644
index 0000000..f5600be
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example01a_unreliable_message_flow tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.tree
new file mode 100644
index 0000000000000000000000000000000000000000..286891f655094aa3574852e869b3fa7a9ed370af
GIT binary patch
literal 4096
zcmeHKPiz!b7=Qbx(`{>^MFm9sR{>EGx}}urMWNe66KtEd2ZO|y>F!%Padu{znQf^-
z4w@J)CWIJc3>t%m5Dy-V@lT?J=s`m~5)K|nkA`^gKs?U)``*0So!8xh@!-jCGW)%G
z^LyW)-}k+lS(h=E!_f;(65@<-5oVz8gU&*4#krj^gYC_QImU1+2PGvM!o7Vs$J7KA
zts^Pm1eWD-gn7)r1bbc3N1+Yq5_C88G|pEjj*P@(37ealS%?;C)GlqfN;`&Tax9A@
zmJq>2RmN6a?{(5?K}am@q5PncySA<m>y|K&oFXs1ig0wq;tQt|odK>NIMSP9O?UG^
zg`07G7V`tp=b#6nFQ~;z8EhpN!k@u@&XGSE&lcTJct6&?hxHFYzYk4y`XDxtjz_~?
zQn=4zoWYiMEMVA{=NG_Hp5Ll~luGj*BA)0+{eE&~F#c-zAjN(76xC10kKRFu8R`R)
z=+{`Mf0Otne%m_y%``F|M=FmE^G$eJi}4%c5?*e1z@guxJFR}PEkB6<YT@$nkOixC
z5g|jztcfU_VT*2MHOgmLv?(LIqa$v+!tDTVm+bi#Kl>A=lmn<}Egow;j(5PRJPh{k
zr_}En{%8lh%Ew@DeG@*U`fZ2a7c#$ND!*ynMjjr*hY{bbKHrKw9?81yjQd#Q<G8YW
zLh<n$_*lwdzbL!j-R)9cHG5~))!{7co$FAC1ees|0&o{~TuAl5oQa<oR}jx5xc(ft
zuQKTG;}^n5iLbYFwC}Zj^cZkgfqxu&tImYM?pzL^P&^OG`ed^T5?zDs>w3Ns_#lyd
zJPCU@^!sXQQ?<o$Yoj>M4^tel*7Cmw|LEJaMBtC4>HoHVKaHiaX73K{g*rY0&m>KI
zg(Q19-S%U!KM#bv6kogbz6|$(k1bgiJ_Wr~w?p>jKHQ_vuXj*jAAL=8Y2LJcAJ*4z
zh#S#y8V{pc7U4`wQpcA6)_YI-AJg&4TFve_?BYyIr0SD?Uf<1L+x}U<A76lvQdY0)
zH0E%oB~o=v+Y9%iF0-i5)6jF!&p@BR+G<vNE=pWo;XH*q1Kc~(Z|k{uUiV4<BUN96
z-OSN@*I;Wodhg;D&cbKu`ub3~uXU~Qcdf&IL%t-<{=CP2Yx#jc^ds!I;{C8gyx@T(
zU7xaBt49~xv4oRxJcm3#?tGsxB=Y%+eW2y{2{^o@uZzGhNt^%Abesg?=b!r5-mmHR
z=H)Dt@69W*eS@9K)AJJVn|%D8^JXdBPw{`3kL&kSp6X|?-}24xp9AZ7{jxpQNZD_T
z<9qbeF!;Ngji2McBys%UA1RgedR^~e7wbqQzeVDWj#$DG*u4S!2cd64k3#<*<J0^u
zn;wg9x7#KwZMZ)=;|$i{6&_M?pwE(et5BNP|EB(9Fk<-SB~ddA!VWmqtIIFDb+N7C
zc*3^KMO*Ni@O|^7;8ojQ>9w4CBj8ob7JY6bNXA{B>jr+m8Mrm8%*C>B0)LBd)#_Mo
zmIKRmr0w04r%jq0E}DD;2m5RFp?jl@d32KS3Ui_?tYzVKd+}hP;tHQTZot*VCP%Dr
z3XTVq%b*^UTlf1;+U}xhBRTWr;QZ9fv&Sa+v8nk5UOdc;<2_yj8PH?2hyFWo`q1mD
znzk<r6WF`_ARq0KgXej1xCgv>CM8?20vfqq_f+8VA|KftPY@51UO9i5kN5d*!z+uJ
z__}RcP9I1X9$$1DPNlC=heb6uZP;{Repz%ML9Gt)v4OgW*cUC^3Rb0w-ieu+xzg11
zk%h^D3D@;178VFzJj9D*y{9?aQC75fwK*&#bA!IHMO>-68IUU@jt!rZBx^5riCR5a
z-R!SA<t5K`tT$w;-6c^q8+M>`caRrH`_VuWB17xJp5w(LFOGCoEzb`OUzA;^Qb<6B
S*}2Jy$<pNf|Mmax>i;*3mMSm+

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.txt
new file mode 100644
index 0000000..9d013b6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example01a_unreliable_message_flow.txt
@@ -0,0 +1,12 @@
+generating traces for scope 1 
+completed Sender: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Receiver: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed unreliable_message_flow: 	3 traces (0 MARKed) 	13 events 
+		average 4.33333 ev/trace 	min 3 	max 5
+
+Elapsed time 0.000279 sec, Speed: 75268.8 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.cpp
new file mode 100644
index 0000000..6c74935
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.cpp
@@ -0,0 +1,484 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Data_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_working
+    , Event_writing
+    , Event_reading
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+    , Event_SIMPLE_LIST_27_28
+       // ADD operations 
+       // ROOT events 
+    , Event_Writer
+    , Event_File
+    , Event_Reader
+       // main schema event 
+    , Event_Data_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "working"
+     , "writing"
+     , "reading"
+     , "SIMPLE_LIST_17_18"
+     , "SIMPLE_LIST_27_28"
+     , "Writer"
+     , "File"
+     , "Reader"
+     , "Data_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Writer_source = Root_table[Event_Writer];
+   // lists of shared events for  Writer 
+  vector<int> Writer_writing_list;
+
+  int File_source = Root_table[Event_File];
+   // lists of shared events for  File 
+  vector<int> File_writing_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Writer_source ]){ 
+     if( Stack[i]->name == Event_writing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Writer_writing_list.begin();
+          s != Writer_writing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Writer_writing_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + File_source ]){ 
+     if( Stack[i]->name == Event_writing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  File_writing_list.begin();
+          s != File_writing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) File_writing_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = File_writing_list.size();
+     if(Writer_writing_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = File_writing_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Writer_writing_list[i], File_writing_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_27_28_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_27_28_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Reader_source = Root_table[Event_Reader];
+   // lists of shared events for  Reader 
+  vector<int> Reader_reading_list;
+
+  int File_source = Root_table[Event_File];
+   // lists of shared events for  File 
+  vector<int> File_reading_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Reader_source ]){ 
+     if( Stack[i]->name == Event_reading ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Reader_reading_list.begin();
+          s != Reader_reading_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Reader_reading_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + File_source ]){ 
+     if( Stack[i]->name == Event_reading ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  File_reading_list.begin();
+          s != File_reading_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) File_reading_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = File_reading_list.size();
+     if(Reader_reading_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = File_reading_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Reader_reading_list[i], File_reading_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_27_28_ob class
+
+//---- 3 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_working); 
+      element[ 1 ]=  new Atomic_producer(Event_writing); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 4 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 5 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_reading); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 6 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_writing); 
+      element[ 1 ]=  new Itr_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 7 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_reading); 
+      element[ 1 ]=  new Atomic_producer(Event_working); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 8 ---- 
+class Itr_21_22 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_21_22 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_19_20 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_21_22 
+
+//---- 9 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Writer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 10 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_File){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 11 ---- 
+class Comp_23_24 : public Composite_producer { 
+public: // constructor 
+    Comp_23_24 (): Composite_producer(Event_Reader){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_21_22 ; 
+    } 
+};// end class Comp_23_24 
+
+//---- 12 ---- 
+class SCHEMA_Data_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_Data_flow(): Composite_producer(Event_Data_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[0]= new Composite_secondary_producer(Event_Writer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_File);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18);
+      element[3]= new Composite_secondary_producer(Event_Reader);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_27_28_ob(Event_SIMPLE_LIST_27_28);
+    } 
+};// end class SCHEMA_Data_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example02_Data_flow.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_13; temp_13.harvest();
+    Comp_13_14 temp_14; temp_14.harvest();
+    Comp_23_24 temp_15; temp_15.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Data_flow temp_16; temp_16.harvest();
+   temp_16.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Data_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.mp
new file mode 100644
index 0000000..811e1de
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.mp
@@ -0,0 +1,39 @@
+/* Example2_DataAsEvents.mp
+	data items as behaviors
+
+MP employs the Abstract Data Type (ADT) principle introduced by 
+Barbara Liskov to represent data items as operations
+being performed on those items.
+
+In this model all writing in the File should be accomplished before reading.
+File should not be empty. These constraints on behavior are 
+captured by File root event grammar rule.
+	
+On the other hand, Writer’s behavior allows scenarios that skip writing at all.
+Such behaviors are not compatible with File behavior patterns.
+
+The SHARE ALL composition ensures that the schema admits 
+only event traces where corresponding event sharing is implemented.
+
+Event traces specified by the schema represent system’s emergent behavior, 
+where behaviors of subsystems are influenced by the coordination.
+This is a toy example of System_of_Systems emerging behavior modeling. 
+
+Run for scopes 1 and up. The "Sequence" or "Swim Lanes" layouts are 
+the most appropriate for browsing traces here. 
+
+*/
+
+SCHEMA Data_flow
+
+ROOT Writer: (* ( working | writing ) *);
+
+/* writing events should precede reading */
+ROOT File:   (+ writing +) (* reading *);
+
+Writer, File SHARE ALL writing;
+	
+
+ROOT Reader: (* ( reading | working ) *);
+
+Reader, File SHARE ALL reading;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp.txt
new file mode 100644
index 0000000..68e1a4e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example02_Data_flow tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.tree
new file mode 100644
index 0000000000000000000000000000000000000000..38de7fa37d08844eb156918cdbc42e20a7498485
GIT binary patch
literal 5632
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.txt
new file mode 100644
index 0000000..1f43944
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example02_Data_flow.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Writer: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed File: 	2 traces (0 MARKed) 	5 events 
+		average 2.5 ev/trace 	min 2 	max 3
+
+completed Reader: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed Data_flow: 	3 traces (0 MARKed) 	21 events 
+		average 7 ev/trace 	min 6 	max 8
+
+Elapsed time 0.000411 sec, Speed: 87591.2 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.cpp
new file mode 100644
index 0000000..c804b6b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.cpp
@@ -0,0 +1,1032 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA ATM_withdrawal trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_insert_card
+    , Event_identification_succeeds
+    , Event_request_withdrawal
+    , Event_get_money
+    , Event_not_sufficient_funds
+    , Event_identification_fails
+    , Event_read_card
+    , Event_validate_id
+    , Event_id_successful
+    , Event_check_balance
+    , Event_sufficient_balance
+    , Event_dispense_money
+    , Event_unsufficient_balance
+    , Event_id_failed
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_73_74
+       // ADD operations 
+       // ROOT events 
+    , Event_Customer
+    , Event_ATM_system
+    , Event_Data_Base
+       // main schema event 
+    , Event_ATM_withdrawal }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "insert_card"
+     , "identification_succeeds"
+     , "request_withdrawal"
+     , "get_money"
+     , "not_sufficient_funds"
+     , "identification_fails"
+     , "read_card"
+     , "validate_id"
+     , "id_successful"
+     , "check_balance"
+     , "sufficient_balance"
+     , "dispense_money"
+     , "unsufficient_balance"
+     , "id_failed"
+     , "SIMPLE_LIST_73_74"
+     , "Customer"
+     , "ATM_system"
+     , "Data_Base"
+     , "ATM_withdrawal" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_73_74_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_73_74_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Data_Base_source = Root_table[Event_Data_Base];
+   // lists of shared events for  Data_Base 
+  vector<int> Data_Base_validate_id_list;
+  vector<int> Data_Base_check_balance_list;
+
+  int ATM_system_source = Root_table[Event_ATM_system];
+   // lists of shared events for  ATM_system 
+  vector<int> ATM_system_validate_id_list;
+  vector<int> ATM_system_check_balance_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Data_Base_source ]){ 
+     if( Stack[i]->name == Event_validate_id ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Data_Base_validate_id_list.begin();
+          s != Data_Base_validate_id_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Data_Base_validate_id_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_check_balance ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Data_Base_check_balance_list.begin();
+          s != Data_Base_check_balance_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Data_Base_check_balance_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + ATM_system_source ]){ 
+     if( Stack[i]->name == Event_validate_id ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  ATM_system_validate_id_list.begin();
+          s != ATM_system_validate_id_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) ATM_system_validate_id_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_check_balance ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  ATM_system_check_balance_list.begin();
+          s != ATM_system_check_balance_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) ATM_system_check_balance_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = ATM_system_validate_id_list.size();
+     if(Data_Base_validate_id_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = ATM_system_check_balance_list.size();
+     if(Data_Base_check_balance_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = ATM_system_validate_id_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Data_Base_validate_id_list[i], ATM_system_validate_id_list[i]);
+   } 
+   len_to_compare = ATM_system_check_balance_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Data_Base_check_balance_list[i], ATM_system_check_balance_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_insert_card))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_read_card))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_request_withdrawal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_check_balance))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_identification_succeeds))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_id_successful))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_get_money))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_dispense_money))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_not_sufficient_funds))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_unsufficient_balance))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_identification_fails))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_id_failed))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_73_74_ob class
+
+//---- 2 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_money); 
+      element[ 1 ]=  new Atomic_producer(Event_not_sufficient_funds); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 3 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_identification_succeeds); 
+      element[ 1 ]=  new Atomic_producer(Event_request_withdrawal); 
+      element[ 2 ]=  new Alt_1_2 ; 
+    } 
+};// end class Sq_3_4 
+
+//---- 4 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_3_4 ; 
+      element[ 1 ]=  new Atomic_producer(Event_identification_fails); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 5 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_insert_card); 
+      element[ 1 ]=  new Alt_5_6 ; 
+    } 
+};// end class Sq_7_8 
+
+//---- 6 ---- 
+class Ct_75_76 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_75_76 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+    } 
+};// end class Ct_75_76 
+
+//---- 7 ---- 
+class Ct_77_78 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_77_78 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      element[ 2 ]=  new Sq_7_8 ; 
+    } 
+};// end class Ct_77_78 
+
+//---- 8 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      element[ 2 ]=  new Ct_75_76 ; 
+      element[ 3 ]=  new Ct_77_78 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 9 ---- 
+class Sq_13_14 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_13_14 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_sufficient_balance); 
+      element[ 1 ]=  new Atomic_producer(Event_dispense_money); 
+    } 
+};// end class Sq_13_14 
+
+//---- 10 ---- 
+class Alt_15_16 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_15_16 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_13_14 ; 
+      element[ 1 ]=  new Atomic_producer(Event_unsufficient_balance); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_15_16 
+
+//---- 11 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_id_successful); 
+      element[ 1 ]=  new Atomic_producer(Event_check_balance); 
+      element[ 2 ]=  new Alt_15_16 ; 
+    } 
+};// end class Sq_17_18 
+
+//---- 12 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_17_18 ; 
+      element[ 1 ]=  new Atomic_producer(Event_id_failed); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 13 ---- 
+class Sq_21_22 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_21_22 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_read_card); 
+      element[ 1 ]=  new Atomic_producer(Event_validate_id); 
+      element[ 2 ]=  new Alt_19_20 ; 
+    } 
+};// end class Sq_21_22 
+
+//---- 14 ---- 
+class Ct_79_80 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_79_80 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_21_22 ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+    } 
+};// end class Ct_79_80 
+
+//---- 15 ---- 
+class Ct_81_82 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_81_82 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_21_22 ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      element[ 2 ]=  new Sq_21_22 ; 
+    } 
+};// end class Ct_81_82 
+
+//---- 16 ---- 
+class Itr_23_24 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_23_24 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      element[ 2 ]=  new Ct_79_80 ; 
+      element[ 3 ]=  new Ct_81_82 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_23_24 
+
+//---- 17 ---- 
+class Opt_27_28 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_27_28 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_check_balance); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_27_28 
+
+//---- 18 ---- 
+class Sq_29_30 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_29_30 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_validate_id); 
+      element[ 1 ]=  new Opt_27_28 ; 
+    } 
+};// end class Sq_29_30 
+
+//---- 19 ---- 
+class Ct_83_84 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_83_84 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_29_30 ; 
+      element[ 1 ]=  new Sq_29_30 ; 
+    } 
+};// end class Ct_83_84 
+
+//---- 20 ---- 
+class Ct_85_86 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_85_86 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_29_30 ; 
+      element[ 1 ]=  new Sq_29_30 ; 
+      element[ 2 ]=  new Sq_29_30 ; 
+    } 
+};// end class Ct_85_86 
+
+//---- 21 ---- 
+class Itr_31_32 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_31_32 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_29_30 ; 
+      element[ 2 ]=  new Ct_83_84 ; 
+      element[ 3 ]=  new Ct_85_86 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_31_32 
+
+//---- 22 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Customer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 23 ---- 
+class Comp_25_26 : public Composite_producer { 
+public: // constructor 
+    Comp_25_26 (): Composite_producer(Event_ATM_system){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_23_24 ; 
+    } 
+};// end class Comp_25_26 
+
+//---- 24 ---- 
+class Comp_33_34 : public Composite_producer { 
+public: // constructor 
+    Comp_33_34 (): Composite_producer(Event_Data_Base){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_31_32 ; 
+    } 
+};// end class Comp_33_34 
+
+//---- 25 ---- 
+class SCHEMA_ATM_withdrawal: public Composite_producer {
+public: // constructor 
+    SCHEMA_ATM_withdrawal(): Composite_producer(Event_ATM_withdrawal){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Customer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_ATM_system);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Data_Base);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_73_74_ob(Event_SIMPLE_LIST_73_74);
+    } 
+};// end class SCHEMA_ATM_withdrawal
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example03_ATM_withdrawal.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_11_12 temp_26; temp_26.harvest();
+    Comp_25_26 temp_27; temp_27.harvest();
+    Comp_33_34 temp_28; temp_28.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_ATM_withdrawal temp_29; temp_29.harvest();
+   temp_29.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"ATM_withdrawal"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.mp
new file mode 100644
index 0000000..0c33381
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.mp
@@ -0,0 +1,83 @@
+/* Example3_ATM_withdrawal.mp
+	Integrated system and environment behaviors
+	
+MP separates models of component behaviors and component interactions 
+to permit elaboration on behaviors of multiple interacting actors.
+
+"Withdraw money from ATM" is a popular example in software architecture literature.
+This example demonstrates how behavior of both the system and its environment can be
+integrated into a single MP model.
+
+Separate behavior models account for alternative behaviors of not only the ATM System
+under design, but also those of external components Customer and Database.
+A separate specification of interactions captures the sharing and precedence dependencies
+among events in different components.
+
+The event traces produced from a model partitioned using this separation of concerns 
+include all combinations of event selections allowed by the model.
+
+Run for scopes 1 and up. 
+
+The "Sequence" or "Swim Lanes" layouts are the most appropriate for browsing traces here. 
+The "Sequence" mode yields views very similar to the UML or SysML Sequence Diagrams. 
+
+By selecting a representative enough trace (containing all events and interactions of interest,
+like traces 2 or 3 for scope 1), and then collapsing root event, it becomes possible 
+to view a traditional "box-and-arrow" architecture diagram, i.e. to visualize an architecture view.
+
+*/
+
+SCHEMA ATM_withdrawal
+
+ROOT Customer: 	(*  insert_card  
+		    		( identification_succeeds 
+					  request_withdrawal 
+					  (get_money | not_sufficient_funds)  |
+                        
+					  identification_fails 	    		  )      
+				*);
+				
+ROOT ATM_system: (* read_card  	
+		    		validate_id 
+		    		( id_successful 
+		      		  check_balance 
+		      		  ( sufficient_balance 	
+			  			dispense_money   	 |
+                          
+			  			unsufficient_balance )  	| 
+                        
+		      		id_failed  					    )   	
+		 		*);
+	
+/* behavior of the Data_Base follows interaction pattern with it in ATM_system,
+    this makes it easier to coordinate these behaviors with SHARE ALL */
+ROOT Data_Base:  	(*  validate_id  [ check_balance ] *);
+
+/* interactions */
+Data_Base,  ATM_system SHARE ALL validate_id, check_balance;
+
+COORDINATE 	$x: insert_card	FROM Customer,  
+			$y: read_card  	FROM ATM_system 
+		DO 	ADD $x PRECEDES $y;  OD;
+		
+COORDINATE 	$x: request_withdrawal FROM Customer,  
+			$y: check_balance      FROM ATM_system
+		DO  ADD $x PRECEDES $y; OD;
+		
+COORDINATE 	$x: identification_succeeds  FROM Customer, 
+			$y: id_successful   	     FROM ATM_system
+	DO  	ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: get_money        FROM Customer,  
+			$y: dispense_money   FROM ATM_system
+	DO  	ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: not_sufficient_funds  	FROM Customer, 
+			$y: unsufficient_balance  	FROM ATM_system
+	DO  	ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: identification_fails   	FROM Customer, 
+			$y: id_failed				FROM ATM_system
+	DO  	ADD $y PRECEDES $x; OD;
+
+	
\ No newline at end of file
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp.txt
new file mode 100644
index 0000000..deeedff
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example03_ATM_withdrawal tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.tree
new file mode 100644
index 0000000000000000000000000000000000000000..d48bc94fcf9ef4e7e515cfbbc295e017b29e8f58
GIT binary patch
literal 13312
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.txt
new file mode 100644
index 0000000..09b6437
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example03_ATM_withdrawal.txt
@@ -0,0 +1,15 @@
+generating traces for scope 3 
+completed Customer: 	40 traces (0 MARKed) 	380 events 
+		average 9.5 ev/trace 	min 1 	max 13
+
+completed ATM_system: 	40 traces (0 MARKed) 	516 events 
+		average 12.9 ev/trace 	min 1 	max 19
+
+completed Data_Base: 	15 traces (0 MARKed) 	66 events 
+		average 4.4 ev/trace 	min 1 	max 7
+
+completed ATM_withdrawal: 	40 traces (0 MARKed) 	1146 events 
+		average 28.65 ev/trace 	min 4 	max 40
+
+Elapsed time 10.8311 sec, Speed: 194.625 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.cpp
new file mode 100644
index 0000000..28c74d4
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.cpp
@@ -0,0 +1,562 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Stack_behavior trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list Paired_with_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    Paired_with_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!Paired_with_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("Paired_with",Paired_with_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "Paired_with"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         Paired_with_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Paired_with_UDR_set 
+  temp_list.clear(); 
+   for(p = Paired_with_UDR_set.begin(); p != Paired_with_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Paired_with_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from Paired_with_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = Paired_with_UDR_set.begin(); p != Paired_with_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  Paired_with_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_push
+    , Event_pop
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_37_38
+       // ADD operations 
+       // ROOT events 
+    , Event_Stack
+       // main schema event 
+    , Event_Stack_behavior }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "push"
+     , "pop"
+     , "SIMPLE_LIST_37_38"
+     , "Stack"
+     , "Stack_behavior" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_13_14 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 2 ---- 
+int special_function_5(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_6(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+bool Quantified_expr_7_8(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int x_variable;
+     int pivot_x_variable = Root_table[Event_Stack];
+
+     // loop 1 for x_variable 
+     for( x_variable = 0; x_variable < len; x_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ x_variable  * len +  pivot_x_variable 
+]) && 
+           (   
+            (Stack[x_variable]-> name == Event_pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_5(current_host, x_variable ) < special_function_6(current_host, 
+x_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_19_20(Coordinate * current_host, int get_variable, int put_variable, int g_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int p_variable;
+     int pivot_p_variable = 0; 
+
+     // loop 1 for p_variable 
+     for( p_variable = 0; p_variable < len; p_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ p_variable  * len +  pivot_p_variable 
+]) && 
+           (   
+            (Stack[p_variable]-> name == Event_push)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( 
+ find_pair_in_table( p_variable , get_variable , Paired_with_UDR_set)) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 6 ---- 
+bool Quantified_expr_21_22(Coordinate * current_host, int get_variable, int put_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int g_variable;
+     int pivot_g_variable = 0; 
+
+     // loop 1 for g_variable 
+     for( g_variable = 0; g_variable < len; g_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ g_variable  * len +  pivot_g_variable 
+]) && 
+           (   
+            (Stack[g_variable]-> name == Event_pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( 
+ find_pair_in_table( put_variable , g_variable , Paired_with_UDR_set)|| Quantified_expr_19_20(current_host, get_variable, put_variable, g_variable
+) )) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 7 ---- 
+class SIMPLE_LIST_37_38_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_37_38_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_7_8(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int get_variable; // thread variable
+  vector<int> get_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for get_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      get_variable = i; 
+      if( get_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_pop))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = get_variable_list.begin(); s != get_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) get_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source get_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = get_variable_list.size();
+  if(thread_length != get_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    get_variable= get_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int put_variable; // thread variable
+  vector<int> put_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for put_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      put_variable = i; 
+      if( put_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_push)) && Event_comparison_expr_13_14 
+(current_host, put_variable , get_variable )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = put_variable_list.begin(); s != put_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) put_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the REVERSE reshuffling 
+  reverse(put_variable_list.begin(), put_variable_list.end());
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = put_variable_list.size();
+  if(thread_length != put_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    put_variable= put_variable_list[i];
+   if( ! Quantified_expr_21_22(current_host, get_variable, put_variable) ){ 
+    // ADD operation 
+    Paired_with_UDR_set.insert(pair<int, int>(put_variable,get_variable));
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_37_38_ob class
+
+//---- 8 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_push); 
+      element[ 1 ]=  new Atomic_producer(Event_pop); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 9 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 10 ---- 
+class Comp_39_40 : public Composite_producer { 
+public: // constructor 
+    Comp_39_40 (): Composite_producer(Event_Stack){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+      element[ 1 ]=  new SIMPLE_LIST_37_38_ob(Event_SIMPLE_LIST_37_38); 
+    } 
+};// end class Comp_39_40 
+
+//---- 11 ---- 
+class SCHEMA_Stack_behavior: public Composite_producer {
+public: // constructor 
+    SCHEMA_Stack_behavior(): Composite_producer(Event_Stack_behavior){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[0]= new Composite_secondary_producer(Event_Stack);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+    } 
+};// end class SCHEMA_Stack_behavior
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example04_Stack_behavior.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_39_40 temp_12; temp_12.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Stack_behavior temp_13; temp_13.harvest();
+   temp_13.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Stack_behavior"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.mp
new file mode 100644
index 0000000..0c66007
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.mp
@@ -0,0 +1,53 @@
+/* Example4_Stack_behavior.mp 
+
+The event trace is a set of events and the Boolean expression constructs in MP 
+can support the traditional first order predicate calculus notation. 
+
+A set of behaviors (event traces) may be defined by the event
+grammar rules, composition operations, and some additional constraints – 
+ENSURE conditions.
+
+run for scopes 1, 2, 3, and up.
+*/
+
+/* This rule specifies the behavior of a stack in terms of stack operations 
+push and pop. It is assumed that initially Stack is empty. 
+The BUILD block associated with a root or composite event 
+contains composition operations performed when event trace segment 
+representing the behavior of that root or composite is generated. 
+
+The ENSURE Boolean expression provides a condition that each valid trace 
+should satisfy. The domain of the universal quantifier is the set of all 
+pop events inside Stack trace. The FROM Stack part is optional, by default it is 
+assumed to be FROM THIS.
+
+The function #pop BEFORE $x yields the number of pop events preceding $x. 
+The set of valid event traces specified by this schema contains only traces 
+that satisfy the constraint. This example presents a filtering operation 
+as yet another kind of behavior composition, and demonstrates an
+example of combining imperative (event grammar) and declarative 
+(Boolean expressions) constructs for behavior specification.
+*/
+
+SCHEMA Stack_behavior
+
+ROOT Stack: (* ( push | pop ) *)
+		BUILD { 
+            /* if an element is retrieved, it should have been stored before */
+            ENSURE FOREACH $x: pop FROM Stack
+					( #pop BEFORE $x < #push BEFORE $x );
+
+        /* The following composition operation establishes push/pop pairs
+            in the Stack behavior. For each 'pop' the closest in time 
+            preceding 'push' is selected, unless it has been already 
+            consumed by another 'pop' */
+
+            COORDINATE  $get: pop 
+                DO COORDINATE <REVERSE> $put: push 
+                                        SUCH THAT $put BEFORE $get 
+                    DO 	IF 	NOT ( EXISTS $g: pop $put Paired_with $g OR
+                                  EXISTS $p: push $p Paired_with $get 	)
+                        THEN ADD $put Paired_with $get; FI;
+                    OD;
+                OD;
+        };/* end BUILD for Stack */
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp.txt
new file mode 100644
index 0000000..1d207ad
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example04_Stack_behavior tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.tree
new file mode 100644
index 0000000000000000000000000000000000000000..69bbe27c546b73efb76a34f7bd3b1746d6bc3559
GIT binary patch
literal 7168
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.txt
new file mode 100644
index 0000000..c862069
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04_Stack_behavior.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Stack: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Stack_behavior: 	2 traces (0 MARKed) 	5 events 
+		average 2.5 ev/trace 	min 2 	max 3
+
+Elapsed time 0.00019 sec, Speed: 42105.3 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.cpp
new file mode 100644
index 0000000..26ba498
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.cpp
@@ -0,0 +1,560 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Queue_behavior trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list Paired_with_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    Paired_with_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!Paired_with_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("Paired_with",Paired_with_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "Paired_with"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         Paired_with_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Paired_with_UDR_set 
+  temp_list.clear(); 
+   for(p = Paired_with_UDR_set.begin(); p != Paired_with_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Paired_with_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from Paired_with_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = Paired_with_UDR_set.begin(); p != Paired_with_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  Paired_with_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_enqueue
+    , Event_dequeue
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_37_38
+       // ADD operations 
+       // ROOT events 
+    , Event_Queue
+       // main schema event 
+    , Event_Queue_behavior }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "enqueue"
+     , "dequeue"
+     , "SIMPLE_LIST_37_38"
+     , "Queue"
+     , "Queue_behavior" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_13_14 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 2 ---- 
+int special_function_5(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_dequeue){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_6(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_enqueue){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+bool Quantified_expr_7_8(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int x_variable;
+     int pivot_x_variable = 0; 
+
+     // loop 1 for x_variable 
+     for( x_variable = 0; x_variable < len; x_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ x_variable  * len +  pivot_x_variable 
+]) && 
+           (   
+            (Stack[x_variable]-> name == Event_dequeue)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_5(current_host, x_variable ) < special_function_6(current_host, 
+x_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_19_20(Coordinate * current_host, int get_variable, int put_variable, int g_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int p_variable;
+     int pivot_p_variable = 0; 
+
+     // loop 1 for p_variable 
+     for( p_variable = 0; p_variable < len; p_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ p_variable  * len +  pivot_p_variable 
+]) && 
+           (   
+            (Stack[p_variable]-> name == Event_enqueue)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( 
+ find_pair_in_table( p_variable , get_variable , Paired_with_UDR_set)) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 6 ---- 
+bool Quantified_expr_21_22(Coordinate * current_host, int get_variable, int put_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int g_variable;
+     int pivot_g_variable = 0; 
+
+     // loop 1 for g_variable 
+     for( g_variable = 0; g_variable < len; g_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ g_variable  * len +  pivot_g_variable 
+]) && 
+           (   
+            (Stack[g_variable]-> name == Event_dequeue)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( 
+ find_pair_in_table( put_variable , g_variable , Paired_with_UDR_set)|| Quantified_expr_19_20(current_host, get_variable, put_variable, g_variable
+) )) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 7 ---- 
+class SIMPLE_LIST_37_38_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_37_38_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_7_8(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int get_variable; // thread variable
+  vector<int> get_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for get_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      get_variable = i; 
+      if( get_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_dequeue))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = get_variable_list.begin(); s != get_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) get_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source get_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = get_variable_list.size();
+  if(thread_length != get_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    get_variable= get_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int put_variable; // thread variable
+  vector<int> put_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for put_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      put_variable = i; 
+      if( put_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_enqueue)) && Event_comparison_expr_13_14 
+(current_host, put_variable , get_variable )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = put_variable_list.begin(); s != put_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) put_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source put_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = put_variable_list.size();
+  if(thread_length != put_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    put_variable= put_variable_list[i];
+   if( ! Quantified_expr_21_22(current_host, get_variable, put_variable) ){ 
+    // ADD operation 
+    Paired_with_UDR_set.insert(pair<int, int>(put_variable,get_variable));
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_37_38_ob class
+
+//---- 8 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_enqueue); 
+      element[ 1 ]=  new Atomic_producer(Event_dequeue); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 9 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 10 ---- 
+class Comp_39_40 : public Composite_producer { 
+public: // constructor 
+    Comp_39_40 (): Composite_producer(Event_Queue){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+      element[ 1 ]=  new SIMPLE_LIST_37_38_ob(Event_SIMPLE_LIST_37_38); 
+    } 
+};// end class Comp_39_40 
+
+//---- 11 ---- 
+class SCHEMA_Queue_behavior: public Composite_producer {
+public: // constructor 
+    SCHEMA_Queue_behavior(): Composite_producer(Event_Queue_behavior){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[0]= new Composite_secondary_producer(Event_Queue);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+    } 
+};// end class SCHEMA_Queue_behavior
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example04a_Queue_behavior.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_39_40 temp_12; temp_12.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Queue_behavior temp_13; temp_13.harvest();
+   temp_13.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Queue_behavior"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.mp
new file mode 100644
index 0000000..3aed579
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.mp
@@ -0,0 +1,45 @@
+/* Example4a_Queue_behavior.mp 
+
+run for scopes 1, 2, 3, and up.
+*/
+
+/* This rule specifies the behavior of a queue in terms of queue operations 
+enqueue and dequeue. It is assumed that initially Queue is empty. 
+The BUILD block associated with a root or composite event 
+contains composition operations performed when event trace segment 
+representing the behavior of that root or composite is generated. 
+
+The ENSURE Boolean expression provides a condition that each valid trace 
+should satisfy. The domain of the universal quantifier is the set of all 
+dequeue events inside Queue trace. 
+
+The function #dequeue BEFORE $x yields the number of dequeue events preceding $x. 
+The set of valid event traces specified by this schema contains only traces 
+that satisfy the constraint. This example presents a filtering operation 
+as yet another kind of behavior composition, and demonstrates an
+example of combining imperative (event grammar) and declarative 
+(Boolean expressions) constructs for behavior specification.            */
+
+SCHEMA Queue_behavior
+
+ROOT Queue: (* ( enqueue | dequeue ) *)
+	BUILD { 
+        /* if an element is retrieved, it should have been stored before,
+            this constraint is identical to Stack behavior constraint. */
+        ENSURE FOREACH $x: dequeue 
+				( #dequeue BEFORE $x < #enqueue BEFORE $x );
+
+     /* The following composition operation establishes enqueue/dequeue pairs
+     	in the Queue behavior. For each 'dequeue' the earliest in time 
+     	preceding 'enqueue' is selected, unless it has been already 
+        consumed by another 'dequeue' */
+     
+	COORDINATE  $get: dequeue 
+		DO COORDINATE $put: enqueue 
+                            SUCH THAT $put BEFORE $get 
+			DO 	IF NOT ( EXISTS $g: dequeue $put Paired_with $g OR
+						 EXISTS $p: enqueue $p Paired_with $get 	 )
+				THEN ADD $put Paired_with $get; FI;
+			OD;
+		OD;
+    };/* end BUILD for Queue */
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp.txt
new file mode 100644
index 0000000..fd2ce4c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example04a_Queue_behavior tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.tree
new file mode 100644
index 0000000000000000000000000000000000000000..7ca24eacdd07b39d9c8ce4ad58e31069ddb6105f
GIT binary patch
literal 7168
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.txt
new file mode 100644
index 0000000..489ea96
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example04a_Queue_behavior.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Queue: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Queue_behavior: 	2 traces (0 MARKed) 	5 events 
+		average 2.5 ev/trace 	min 2 	max 3
+
+Elapsed time 0.000189 sec, Speed: 42328 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.cpp
new file mode 100644
index 0000000..e1af221
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.cpp
@@ -0,0 +1,1130 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Example5_Car_Race trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Start
+    , Event_drive_lap
+    , Event_finish
+    , Event_winner
+    , Event_break
+    , Event_provide_start_signal
+    , Event_watch
+       // composite events 
+    , Event_Car
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_40_41
+    , Event_SIMPLE_LIST_91_92
+       // ADD operations 
+       // ROOT events 
+    , Event_Cars
+    , Event_Judge
+       // main schema event 
+    , Event_Example5_Car_Race }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Start"
+     , "drive_lap"
+     , "finish"
+     , "winner"
+     , "break"
+     , "provide_start_signal"
+     , "watch"
+     , "Car"
+     , "SIMPLE_LIST_40_41"
+     , "SIMPLE_LIST_91_92"
+     , "Cars"
+     , "Judge"
+     , "Example5_Car_Race" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_15(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_16(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_17(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_18(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_20(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_break){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_21(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_22(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_29(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_winner){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_34(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_35(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_winner){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+int special_function_62(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 13 ---- 
+int special_function_71(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 14 ---- 
+int special_function_72(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Car){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 15 ---- 
+int special_function_79(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 16 ---- 
+int special_function_80(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Car){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 17 ---- 
+int special_function_83(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 18 ---- 
+int special_function_84(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Car){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 19 ---- 
+bool Quantified_expr_23_24(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int c1_variable;
+     int pivot_c1_variable = 0; 
+     int c2_variable;
+     int pivot_c2_variable = 0; 
+
+     // loop 1 for c1_variable 
+     for( c1_variable = 0; c1_variable < len; c1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ c1_variable  * len +  pivot_c1_variable 
+]) && 
+           (   
+            (Stack[c1_variable]-> name == Event_Car)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for c2_variable 
+     for( c2_variable = 0; c2_variable < len; c2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ c2_variable  * len +  pivot_c2_variable 
+]) && 
+           (   
+            (Stack[c2_variable]-> name == Event_Car)   ) 
+           // checking DISJ 
+           &&  c2_variable  !=  c1_variable 
+           && !(current_host-> eq_matrix[ c2_variable * len + c1_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( (! ( ( special_function_15(current_host, c1_variable ) == 1 )&& ( special_function_16(current_host, 
+c2_variable ) == 1 ))|| ( special_function_17(current_host, c1_variable ) == special_function_18(current_host, 
+c2_variable ) ))&& (! ( ( special_function_19(current_host, c1_variable ) == 1 )
+&& ( special_function_20(current_host, c2_variable ) == 1 ))|| ( special_function_21(current_host, 
+c1_variable ) >= special_function_22(current_host, c2_variable ) )))) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 20 ---- 
+class SIMPLE_LIST_40_41_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_40_41_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_23_24(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_29(current_host, Root_table[Event_Cars])<= 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( (! ( special_function_34(current_host, Root_table[Event_Cars])> 0 )|| ( special_function_35(current_host, Root_table[Event_Cars])
+> 0 ))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_40_41_ob class
+
+//---- 21 ---- 
+class SIMPLE_LIST_91_92_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_91_92_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Judge_source = Root_table[Event_Judge]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Judge_source ]){ 
+       if( (  (Stack[i]->name == Event_provide_start_signal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Cars_source = Root_table[Event_Cars]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Cars_source ]){ 
+       if( (  (Stack[i]->name == Event_Start))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Cars_source = Root_table[Event_Cars];
+   // lists of shared events for  Cars 
+  vector<int> Cars_finish_list;
+
+  int Judge_source = Root_table[Event_Judge];
+   // lists of shared events for  Judge 
+  vector<int> Judge_finish_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Cars_source ]){ 
+     if( Stack[i]->name == Event_finish ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Cars_finish_list.begin();
+          s != Cars_finish_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Cars_finish_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Judge_source ]){ 
+     if( Stack[i]->name == Event_finish ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Judge_finish_list.begin();
+          s != Judge_finish_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Judge_finish_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Judge_finish_list.size();
+     if(Cars_finish_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Judge_finish_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Cars_finish_list[i], Judge_finish_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int w_variable; // thread variable
+  vector<int> w_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for w_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      w_variable = i; 
+      if( w_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_winner))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = w_variable_list.begin(); s != w_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) w_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source w_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = w_variable_list.size();
+  if(thread_length != w_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    w_variable= w_variable_list[i];
+   if( ( special_function_62(current_host, w_variable ) == 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( ( special_function_71(current_host, Root_table[Event_Example5_Car_Race])
+== special_function_72(current_host, Root_table[Event_Example5_Car_Race]))){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"All cars have finished";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+  else{ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert << special_function_83(current_host, Root_table[Event_Example5_Car_Race])
+; 
+     convert <<" cars from ";
+     convert << special_function_84(current_host, Root_table[Event_Example5_Car_Race])
+; 
+     convert <<" have finished";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_91_92_ob class
+
+//---- 22 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_drive_lap); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 23 ---- 
+class Opt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_winner); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_3_4 
+
+//---- 24 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_finish); 
+      element[ 1 ]=  new Opt_3_4 ; 
+    } 
+};// end class Sq_5_6 
+
+//---- 25 ---- 
+class Alt_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+      element[ 1 ]=  new Atomic_producer(Event_break); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_7_8 
+
+//---- 26 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Start); 
+      element[ 1 ]=  new Itr_1_2 ; 
+      element[ 2 ]=  new Alt_7_8 ; 
+    } 
+};// end class Sq_9_10 
+
+//---- 27 ---- 
+class Itr_44_45 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_44_45 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_finish); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_44_45 
+
+//---- 28 ---- 
+class Sq_46_47 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_46_47 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_provide_start_signal); 
+      element[ 1 ]=  new Atomic_producer(Event_watch); 
+      element[ 2 ]=  new Itr_44_45 ; 
+    } 
+};// end class Sq_46_47 
+
+//---- 29 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Car){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 30 ---- 
+class Comp_42_43 : public Composite_producer { 
+public: // constructor 
+    Comp_42_43 (): Composite_producer(Event_Cars){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Car); 
+      element[ 1 ]=  new SIMPLE_LIST_40_41_ob(Event_SIMPLE_LIST_40_41); 
+    } 
+};// end class Comp_42_43 
+
+//---- 31 ---- 
+class Comp_48_49 : public Composite_producer { 
+public: // constructor 
+    Comp_48_49 (): Composite_producer(Event_Judge){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_46_47 ; 
+    } 
+};// end class Comp_48_49 
+
+//---- 32 ---- 
+class SCHEMA_Example5_Car_Race: public Composite_producer {
+public: // constructor 
+    SCHEMA_Example5_Car_Race(): Composite_producer(Event_Example5_Car_Race){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Cars);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Judge);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_91_92_ob(Event_SIMPLE_LIST_91_92);
+    } 
+};// end class SCHEMA_Example5_Car_Race
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example05_Car_Race.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_11_12 temp_33; temp_33.harvest();
+   // harvesting traces for ROOT events 
+    Comp_42_43 temp_34; temp_34.harvest();
+    Comp_48_49 temp_35; temp_35.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Example5_Car_Race temp_36; temp_36.harvest();
+   temp_36.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Example5_Car_Race"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.mp
new file mode 100644
index 0000000..4f6a8fd
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.mp
@@ -0,0 +1,64 @@
+/* Example5_CarRace.mp
+
+	more coordination patterns:
+	-	ordering of selected events in concurrent threads
+		can be modeled by coordinating them with event sequence;
+        
+	-	one-many coordination.
+    
+	Run for scopes 1 and up. The "Sequence" or "Swim Lanes" 
+	layouts are the most appropriate for browsing traces here. 
+*/
+
+SCHEMA Example5_Car_Race
+
+Car:    Start 
+        (* drive_lap *) 
+        /* not necessary all cars will finish */
+        ( finish [ winner ] | break) ;
+
+ROOT Cars:	{+ Car +}
+
+			BUILD{
+				/* everybody who finishes drives the same number of laps */
+				ENSURE FOREACH DISJ $c1: Car, $c2: Car 
+						(#finish FROM $c1 == 1 AND #finish FROM $c2 == 1 -> 
+						 #drive_lap FROM $c1 == #drive_lap FROM $c2)
+                
+						AND
+					/* if it breaks, then earlier */
+						(#finish FROM $c1 == 1 AND #break FROM $c2 == 1 -> 
+						 #drive_lap FROM $c1 >= #drive_lap FROM $c2);
+					
+				/* there always will be at most one winner */
+				ENSURE #winner <= 1;
+			
+				/* if at least one car finishes, there should be a winner */
+				ENSURE #finish > 0 -> #winner > 0;
+			};
+
+ROOT Judge:		provide_start_signal 
+				watch  
+				(* finish *);
+
+/* one-many coordination can be done with nested COORDINATE */
+COORDINATE	$a: provide_start_signal	FROM Judge
+	DO 	COORDINATE  $b: Start FROM Cars
+			DO ADD $a PRECEDES $b; OD;
+	OD;
+	
+Cars, Judge SHARE ALL finish;
+
+/* 	now when the ordering of finish events is ensured 
+    (because they are ordered in the Judge root traces), 
+  	we can state: the winner is the car which finishes first */
+COORDINATE $w: winner
+	DO ENSURE #finish BEFORE $w == 1; OD;
+
+/* this is an example of trace annotation with data 
+    specific for the trace */
+
+IF #finish == #Car THEN SAY("All cars have finished");
+ELSE 			SAY( #finish " cars from " #Car 
+                    " have finished");
+FI;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp.txt
new file mode 100644
index 0000000..b08a942
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example05_Car_Race tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.tree
new file mode 100644
index 0000000000000000000000000000000000000000..57b4951abd8e9947e374d0a9c9516991b5423486
GIT binary patch
literal 15360
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
NFjW5k^;g#ae*q-}{Z{}0

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.txt
new file mode 100644
index 0000000..0f0b7a2
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example05_Car_Race.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Car: 	6 traces (0 MARKed) 	23 events 
+		average 3.83333 ev/trace 	min 3 	max 5
+
+completed Cars: 	4 traces (0 MARKed) 	20 events 
+		average 5 ev/trace 	min 4 	max 6
+
+completed Judge: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Example5_Car_Race: 	4 traces (0 MARKed) 	42 events 
+		average 10.5 ev/trace 	min 9 	max 12
+
+Elapsed time 0.000964 sec, Speed: 95435.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.cpp
new file mode 100644
index 0000000..02e62ac
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.cpp
@@ -0,0 +1,690 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA AtoB trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_A_sends_request_to_B
+    , Event_A_receives_data_from_B
+    , Event_A_timeout_waiting_from_B
+    , Event_B_receives_request_from_A
+    , Event_B_sends_data_to_A
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_23_24
+    , Event_SIMPLE_LIST_41_42
+       // ADD operations 
+       // ROOT events 
+    , Event_TaskA
+    , Event_Connector_A_to_B
+    , Event_TaskB
+       // main schema event 
+    , Event_AtoB }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "A_sends_request_to_B"
+     , "A_receives_data_from_B"
+     , "A_timeout_waiting_from_B"
+     , "B_receives_request_from_A"
+     , "B_sends_data_to_A"
+     , "SIMPLE_LIST_23_24"
+     , "SIMPLE_LIST_41_42"
+     , "TaskA"
+     , "Connector_A_to_B"
+     , "TaskB"
+     , "AtoB" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_33(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_A_sends_request_to_B){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_34(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_A_receives_data_from_B){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 3 ---- 
+class SIMPLE_LIST_23_24_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_23_24_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int TaskA_source = Root_table[Event_TaskA];
+   // lists of shared events for  TaskA 
+  vector<int> TaskA_A_sends_request_to_B_list;
+  vector<int> TaskA_A_timeout_waiting_from_B_list;
+  vector<int> TaskA_A_receives_data_from_B_list;
+
+  int Connector_A_to_B_source = Root_table[Event_Connector_A_to_B];
+   // lists of shared events for  Connector_A_to_B 
+  vector<int> Connector_A_to_B_A_sends_request_to_B_list;
+  vector<int> Connector_A_to_B_A_timeout_waiting_from_B_list;
+  vector<int> Connector_A_to_B_A_receives_data_from_B_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + TaskA_source ]){ 
+     if( Stack[i]->name == Event_A_sends_request_to_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  TaskA_A_sends_request_to_B_list.begin();
+          s != TaskA_A_sends_request_to_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) TaskA_A_sends_request_to_B_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_A_timeout_waiting_from_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  TaskA_A_timeout_waiting_from_B_list.begin();
+          s != TaskA_A_timeout_waiting_from_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) TaskA_A_timeout_waiting_from_B_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_A_receives_data_from_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  TaskA_A_receives_data_from_B_list.begin();
+          s != TaskA_A_receives_data_from_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) TaskA_A_receives_data_from_B_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Connector_A_to_B_source ]){ 
+     if( Stack[i]->name == Event_A_sends_request_to_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Connector_A_to_B_A_sends_request_to_B_list.begin();
+          s != Connector_A_to_B_A_sends_request_to_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Connector_A_to_B_A_sends_request_to_B_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_A_timeout_waiting_from_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Connector_A_to_B_A_timeout_waiting_from_B_list.begin();
+          s != Connector_A_to_B_A_timeout_waiting_from_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Connector_A_to_B_A_timeout_waiting_from_B_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_A_receives_data_from_B ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Connector_A_to_B_A_receives_data_from_B_list.begin();
+          s != Connector_A_to_B_A_receives_data_from_B_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Connector_A_to_B_A_receives_data_from_B_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Connector_A_to_B_A_sends_request_to_B_list.size();
+     if(TaskA_A_sends_request_to_B_list.size() != len_to_compare) throw failed ;
+ 
+   len_to_compare = Connector_A_to_B_A_timeout_waiting_from_B_list.size();
+     if(TaskA_A_timeout_waiting_from_B_list.size() != len_to_compare) throw 
+failed ; 
+   len_to_compare = Connector_A_to_B_A_receives_data_from_B_list.size();
+     if(TaskA_A_receives_data_from_B_list.size() != len_to_compare) throw failed
+ ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Connector_A_to_B_A_sends_request_to_B_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(TaskA_A_sends_request_to_B_list[i], Connector_A_to_B_A_sends_request_to_B_list[i]);
+   } 
+   len_to_compare = Connector_A_to_B_A_timeout_waiting_from_B_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(TaskA_A_timeout_waiting_from_B_list[i], Connector_A_to_B_A_timeout_waiting_from_B_list[i]);
+   } 
+   len_to_compare = Connector_A_to_B_A_receives_data_from_B_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(TaskA_A_receives_data_from_B_list[i], Connector_A_to_B_A_receives_data_from_B_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_23_24_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_41_42_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_41_42_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int TaskB_source = Root_table[Event_TaskB];
+   // lists of shared events for  TaskB 
+  vector<int> TaskB_B_receives_request_from_A_list;
+  vector<int> TaskB_B_sends_data_to_A_list;
+
+  int Connector_A_to_B_source = Root_table[Event_Connector_A_to_B];
+   // lists of shared events for  Connector_A_to_B 
+  vector<int> Connector_A_to_B_B_receives_request_from_A_list;
+  vector<int> Connector_A_to_B_B_sends_data_to_A_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + TaskB_source ]){ 
+     if( Stack[i]->name == Event_B_receives_request_from_A ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  TaskB_B_receives_request_from_A_list.begin();
+          s != TaskB_B_receives_request_from_A_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) TaskB_B_receives_request_from_A_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_B_sends_data_to_A ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  TaskB_B_sends_data_to_A_list.begin();
+          s != TaskB_B_sends_data_to_A_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) TaskB_B_sends_data_to_A_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Connector_A_to_B_source ]){ 
+     if( Stack[i]->name == Event_B_receives_request_from_A ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Connector_A_to_B_B_receives_request_from_A_list.begin();
+          s != Connector_A_to_B_B_receives_request_from_A_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Connector_A_to_B_B_receives_request_from_A_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_B_sends_data_to_A ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Connector_A_to_B_B_sends_data_to_A_list.begin();
+          s != Connector_A_to_B_B_sends_data_to_A_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Connector_A_to_B_B_sends_data_to_A_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Connector_A_to_B_B_receives_request_from_A_list.size();
+     if(TaskB_B_receives_request_from_A_list.size() != len_to_compare) throw 
+failed ; 
+   len_to_compare = Connector_A_to_B_B_sends_data_to_A_list.size();
+     if(TaskB_B_sends_data_to_A_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Connector_A_to_B_B_receives_request_from_A_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(TaskB_B_receives_request_from_A_list[i], Connector_A_to_B_B_receives_request_from_A_list[i]);
+   } 
+   len_to_compare = Connector_A_to_B_B_sends_data_to_A_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(TaskB_B_sends_data_to_A_list[i], Connector_A_to_B_B_sends_data_to_A_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+   if( ( special_function_33(current_host, Root_table[Event_TaskA])== special_function_34(current_host, Root_table[Event_TaskA]))
+){} 
+  else{ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"loss of reception detected";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   Mark = 'M'; // MARK
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_41_42_ob class
+
+//---- 5 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_A_receives_data_from_B); 
+      element[ 1 ]=  new Atomic_producer(Event_A_timeout_waiting_from_B); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 6 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_A_sends_request_to_B); 
+      element[ 1 ]=  new Alt_1_2 ; 
+    } 
+};// end class Sq_3_4 
+
+//---- 7 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_3_4 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 8 ---- 
+class Alt_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_A_receives_data_from_B); 
+      element[ 1 ]=  new Atomic_producer(Event_A_timeout_waiting_from_B); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_9_10 
+
+//---- 9 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_B_receives_request_from_A); 
+      element[ 1 ]=  new Atomic_producer(Event_B_sends_data_to_A); 
+      element[ 2 ]=  new Alt_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 10 ---- 
+class Alt_13_14 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_13_14 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+      element[ 1 ]=  new Atomic_producer(Event_A_timeout_waiting_from_B); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_13_14 
+
+//---- 11 ---- 
+class Sq_15_16 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_15_16 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_A_sends_request_to_B); 
+      element[ 1 ]=  new Alt_13_14 ; 
+    } 
+};// end class Sq_15_16 
+
+//---- 12 ---- 
+class Itr_17_18 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_17_18 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_15_16 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_17_18 
+
+//---- 13 ---- 
+class Sq_25_26 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_25_26 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_B_receives_request_from_A); 
+      element[ 1 ]=  new Atomic_producer(Event_B_sends_data_to_A); 
+    } 
+};// end class Sq_25_26 
+
+//---- 14 ---- 
+class Itr_27_28 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_27_28 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_25_26 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_27_28 
+
+//---- 15 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_TaskA){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 16 ---- 
+class Comp_19_20 : public Composite_producer { 
+public: // constructor 
+    Comp_19_20 (): Composite_producer(Event_Connector_A_to_B){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_17_18 ; 
+    } 
+};// end class Comp_19_20 
+
+//---- 17 ---- 
+class Comp_29_30 : public Composite_producer { 
+public: // constructor 
+    Comp_29_30 (): Composite_producer(Event_TaskB){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_27_28 ; 
+    } 
+};// end class Comp_29_30 
+
+//---- 18 ---- 
+class SCHEMA_AtoB: public Composite_producer {
+public: // constructor 
+    SCHEMA_AtoB(): Composite_producer(Event_AtoB){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[0]= new Composite_secondary_producer(Event_TaskA);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Connector_A_to_B);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_23_24_ob(Event_SIMPLE_LIST_23_24);
+      element[3]= new Composite_secondary_producer(Event_TaskB);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_41_42_ob(Event_SIMPLE_LIST_41_42);
+    } 
+};// end class SCHEMA_AtoB
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example06_Assertion_Checking.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_7_8 temp_19; temp_19.harvest();
+    Comp_19_20 temp_20; temp_20.harvest();
+    Comp_29_30 temp_21; temp_21.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_AtoB temp_22; temp_22.harvest();
+   temp_22.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"AtoB"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.mp
new file mode 100644
index 0000000..61d2cdd
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.mp
@@ -0,0 +1,57 @@
+/* Example6 Assertion checking, Communicating via unreliable channel.
+
+	MP models need to be tested and debugged like any other 
+    programming artifacts. Trace generation for a given scope 
+    yields exhaustive set of valid event traces. 
+    Browsing these traces may result in finding examples of behavior 
+    that are unwanted. Then we fix the issue in the MP code, 
+    and run the trace generation again, until our expectations are 
+    satisfied. 
+
+    Browsing dozens or hundreds of event traces may be time 
+    consuming and error prone. The CHECK construct makes it possible 
+    to use automated trace monitoring. If the property 
+    (Boolean expression in the CHECK) is not satisfied, the trace will 
+    be marked and available for further inspection. 
+    
+    This can significantly speed up the testing process. Of course, 
+    if the property should always hold, it makes sense to convert it 
+    into the ENSURE condition.
+*/
+
+SCHEMA AtoB
+
+ROOT TaskA: (* 	A_sends_request_to_B
+		    	( 	A_receives_data_from_B   	|  
+					A_timeout_waiting_from_B  	)   
+			*);	
+
+ROOT Connector_A_to_B: 	
+			(*  A_sends_request_to_B
+				(  	B_receives_request_from_A
+					B_sends_data_to_A
+					( 	A_receives_data_from_B  	| 
+						A_timeout_waiting_from_B 	) 	|
+                    
+			 		A_timeout_waiting_from_B 			)  
+			*);				
+/* A_timeout_waiting_from_B may happen because Connector_A_to_B 
+	fails to pass a message from A to B, or from B to A */
+
+TaskA, Connector_A_to_B SHARE ALL 	A_sends_request_to_B,
+ 									A_timeout_waiting_from_B,
+									A_receives_data_from_B ;
+
+ROOT TaskB: 	(* 	B_receives_request_from_A  	
+					B_sends_data_to_A 
+				*);
+
+TaskB, Connector_A_to_B SHARE ALL 	B_receives_request_from_A,
+  									B_sends_data_to_A ;
+
+/* assertion checking will mark examples of traces where TaskA 
+	does not receive the requested data and will attach a message 
+    to the trace */
+CHECK 	#A_sends_request_to_B 		FROM TaskA == 
+		#A_receives_data_from_B 	FROM TaskA 
+	ONFAIL SAY("loss of reception detected"); 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp.txt
new file mode 100644
index 0000000..5e8de87
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example06_Assertion_Checking tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.tree
new file mode 100644
index 0000000000000000000000000000000000000000..d4c5e1c58ca63ea26bb8f112ffaa523e6815c2da
GIT binary patch
literal 7168
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
L5MlcN;s1XFT|yDL

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.txt
new file mode 100644
index 0000000..caeb897
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example06_Assertion_Checking.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed TaskA: 	3 traces (0 MARKed) 	7 events 
+		average 2.33333 ev/trace 	min 1 	max 3
+
+completed Connector_A_to_B: 	4 traces (0 MARKed) 	14 events 
+		average 3.5 ev/trace 	min 1 	max 5
+
+completed TaskB: 	2 traces (0 MARKed) 	4 events 
+		average 2 ev/trace 	min 1 	max 3
+
+completed AtoB: 	4 traces (2 MARKed) 	38 events 
+		average 9.5 ev/trace 	min 4 	max 13
+
+Elapsed time 0.00089 sec, Speed: 70786.5 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.cpp
new file mode 100644
index 0000000..89d29da
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.cpp
@@ -0,0 +1,544 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Unconstrained_Stack trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_push
+    , Event_pop
+    , Event_bang
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_36_37
+       // ADD operations 
+       // ROOT events 
+    , Event_Stack
+       // main schema event 
+    , Event_Unconstrained_Stack }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "push"
+     , "pop"
+     , "bang"
+     , "SIMPLE_LIST_36_37"
+     , "Stack"
+     , "Unconstrained_Stack" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_9(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_10(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_bang){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_11(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_12(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(find_pair_in_table( i, pivot, Follows )) { 
+         if(   Stack[i]->name == Event_bang){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_13_14(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int p_variable;
+     int pivot_p_variable = 0; 
+
+     // loop 1 for p_variable 
+     for( p_variable = 0; p_variable < len; p_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ p_variable  * len +  pivot_p_variable 
+]) && 
+           (   
+            (Stack[p_variable]-> name == Event_pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( ( ( special_function_9(current_host, p_variable ) - special_function_10(current_host, 
+p_variable ) )>= special_function_11(current_host, p_variable ) )== ( special_function_12(current_host, 
+p_variable ) == 1 ))) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 6 ---- 
+class SIMPLE_LIST_36_37_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_36_37_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_13_14(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_bang))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    b_variable= b_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_pop)) && find_pair_in_table( b_variable ,
+ x_variable ,	Follows)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    // ADD operation 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"This event tries to pop empty Stack";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    int temp_23 = Stack.size() - 1;
+    Follows.insert(pair<int, int>(x_variable,temp_23));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+   Mark = 'M'; // MARK
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_36_37_ob class
+
+//---- 7 ---- 
+class Opt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_bang); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_1_2 
+
+//---- 8 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_pop); 
+      element[ 1 ]=  new Opt_1_2 ; 
+    } 
+};// end class Sq_3_4 
+
+//---- 9 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_push); 
+      element[ 1 ]=  new Sq_3_4 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 10 ---- 
+class Itr_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_5_6 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_7_8 
+
+//---- 11 ---- 
+class Comp_38_39 : public Composite_producer { 
+public: // constructor 
+    Comp_38_39 (): Composite_producer(Event_Stack){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_7_8 ; 
+      element[ 1 ]=  new SIMPLE_LIST_36_37_ob(Event_SIMPLE_LIST_36_37); 
+    } 
+};// end class Comp_38_39 
+
+//---- 12 ---- 
+class SCHEMA_Unconstrained_Stack: public Composite_producer {
+public: // constructor 
+    SCHEMA_Unconstrained_Stack(): Composite_producer(Event_Unconstrained_Stack){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[0]= new Composite_secondary_producer(Event_Stack);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+    } 
+};// end class SCHEMA_Unconstrained_Stack
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example07_Unconstrained_Stack.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_38_39 temp_13; temp_13.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Unconstrained_Stack temp_14; temp_14.harvest();
+   temp_14.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Unconstrained_Stack"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.mp
new file mode 100644
index 0000000..817cee8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.mp
@@ -0,0 +1,50 @@
+/* Example7 	Trace annotation techniques 
+
+Assertion checking with the CHECK clause may be the simplest and most
+common tool for finding counterexamples of traces, which violate some
+property. Traces violating the CHECK condition are marked, and the 
+message provides some hint about the cause. The message is associated 
+with the root, composite, or the whole schema, and further details may 
+require browsing of the corresponding trace segment. The following example 
+demonstrates how to make messages more specific and focused. 
+
+Let’s consider again the Stack model, but this time without the ENSURE 
+constraint on the Stack behavior. This Stack certainly will produce 
+unwanted behaviors. The MP code illustrates how to pinpoint events that 
+might  violate certain property, and how to annotate these particular 
+events in the trace with additional messages. Programmers will recognize 
+the use of debugging print statements for traditional program testing/debugging.
+*/
+
+SCHEMA Unconstrained_Stack
+ROOT Stack: (*  ( push | pop [ bang ])  *)
+	/* bang event represents the Stack underflow event  */
+
+	BUILD {
+	/* 	By default the domain for event selection is FROM THIS. 
+    
+    	The following ENSURE makes sure that each attempt to pop empty Stack 
+    	is followed by bang event */
+        
+		ENSURE FOREACH $p: pop
+        /* pop associated with the bang event does not affect Stack contents,
+        	hence only successful pop events do count   */
+
+			(#pop BEFORE $p - #bang BEFORE $p) >= #push BEFORE $p
+        		<-> #bang FOLLOWS $p == 1;
+
+	COORDINATE $b: bang
+
+		/* pick up pop event immediately preceding bang */
+		DO COORDINATE $x: pop SUCH THAT $x PRECEDES $b
+				DO  ADD SAY("This event tries to pop empty Stack")
+  						PRECEDES $x;
+					MARK;
+				OD;
+		OD; 
+	};
+
+/* Now traces where Stack behavior is incorrect will be MARKed and 
+	corresponding pop events will be pointed to by PRECEDES arrow leading 
+    from the message box associated with this event.  
+*/
\ No newline at end of file
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp.txt
new file mode 100644
index 0000000..67cecf8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example07_Unconstrained_Stack tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.tree
new file mode 100644
index 0000000000000000000000000000000000000000..ccfb7ce1ec83c57ec22426e4670cd16973b9b5e5
GIT binary patch
literal 7168
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.txt
new file mode 100644
index 0000000..6b82124
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example07_Unconstrained_Stack.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Stack: 	3 traces (1 MARKed) 	7 events 
+		average 2.33333 ev/trace 	min 1 	max 4
+
+completed Unconstrained_Stack: 	3 traces (1 MARKed) 	10 events 
+		average 3.33333 ev/trace 	min 2 	max 5
+
+Elapsed time 0.000251 sec, Speed: 67729.1 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.cpp
new file mode 100644
index 0000000..06b30e6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.cpp
@@ -0,0 +1,1439 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Wide_Range_Search_for_Wreckage_and_Survivors trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Receive_distress_signal
+    , Event_Pass_mission_information
+    , Event_Acknowledge_search_plan
+    , Event_Receive_relayed_survivor_location_and_situation
+    , Event_Receive_mission_information
+    , Event_Relay_mission_information
+    , Event_Attempt_contact_with_PID
+    , Event_Assess_environmental_conditions
+    , Event_Receive_environmental_conditions
+    , Event_Provide_search_plan
+    , Event_Communicate_search_plan_and_responsibilities
+    , Event_Scan_environment_for_signs_of_PID
+    , Event_Receive_updates_for_OSC
+    , Event_Receive_PID_location_and_situation
+    , Event_Relay_survivor_location_and_situation
+    , Event_Send_distress_signal
+    , Event_Identify_self_as_PID
+    , Event_Present_for_rescue
+    , Event_Provide_environmental_conditions
+    , Event_Receive_relayed_mission_information
+    , Event_Confirm_search_plan_and_responsibilities
+    , Event_Provide_updates_to_OSC
+    , Event_Spot_object_of_interest
+    , Event_Maneuver_to_rescue_PID
+    , Event_Notify_OSC_of_PID_location_and_situation
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_105_106
+       // ADD operations 
+       // ROOT events 
+    , Event_Command_and_Control
+    , Event_On_Scene_Commander
+    , Event_PID
+    , Event_Physical_Environment
+    , Event_SAR_Assets
+       // main schema event 
+    , Event_Wide_Range_Search_for_Wreckage_and_Survivors }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Receive_distress_signal"
+     , "Pass_mission_information"
+     , "Acknowledge_search_plan"
+     , "Receive_relayed_survivor_location_and_situation"
+     , "Receive_mission_information"
+     , "Relay_mission_information"
+     , "Attempt_contact_with_PID"
+     , "Assess_environmental_conditions"
+     , "Receive_environmental_conditions"
+     , "Provide_search_plan"
+     , "Communicate_search_plan_and_responsibilities"
+     , "Scan_environment_for_signs_of_PID"
+     , "Receive_updates_for_OSC"
+     , "Receive_PID_location_and_situation"
+     , "Relay_survivor_location_and_situation"
+     , "Send_distress_signal"
+     , "Identify_self_as_PID"
+     , "Present_for_rescue"
+     , "Provide_environmental_conditions"
+     , "Receive_relayed_mission_information"
+     , "Confirm_search_plan_and_responsibilities"
+     , "Provide_updates_to_OSC"
+     , "Spot_object_of_interest"
+     , "Maneuver_to_rescue_PID"
+     , "Notify_OSC_of_PID_location_and_situation"
+     , "SIMPLE_LIST_105_106"
+     , "Command_and_Control"
+     , "On_Scene_Commander"
+     , "PID"
+     , "Physical_Environment"
+     , "SAR_Assets"
+     , "Wide_Range_Search_for_Wreckage_and_Survivors" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_105_106_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_105_106_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  PID_source = Root_table[Event_PID]; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Command_and_Control_source = Root_table[Event_Command_and_Control]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  PID_source ]){ 
+       if( (  (Stack[i]->name == Event_Send_distress_signal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Command_and_Control_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_distress_signal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Command_and_Control_source = Root_table[Event_Command_and_Control]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Command_and_Control_source ]){ 
+       if( (  (Stack[i]->name == Event_Pass_mission_information))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_mission_information))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Relay_mission_information))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_relayed_mission_information))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Physical_Environment_source = Root_table[Event_Physical_Environment]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Assess_environmental_conditions))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Physical_Environment_source ]){ 
+       if( (  (Stack[i]->name == Event_Provide_environmental_conditions))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Physical_Environment_source = Root_table[Event_Physical_Environment]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Physical_Environment_source ]){ 
+       if( (  (Stack[i]->name == Event_Provide_environmental_conditions))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_environmental_conditions))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Command_and_Control_source = Root_table[Event_Command_and_Control]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Provide_search_plan))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Command_and_Control_source ]){ 
+       if( (  (Stack[i]->name == Event_Acknowledge_search_plan))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Command_and_Control_source = Root_table[Event_Command_and_Control]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Command_and_Control_source ]){ 
+       if( (  (Stack[i]->name == Event_Acknowledge_search_plan))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Communicate_search_plan_and_responsibilities)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Communicate_search_plan_and_responsibilities)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Confirm_search_plan_and_responsibilities)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int On_Scene_Commander_source = Root_table[Event_On_Scene_Commander];
+   // lists of shared events for  On_Scene_Commander 
+  vector<int> On_Scene_Commander_Scan_environment_for_signs_of_PID_list;
+
+  int SAR_Assets_source = Root_table[Event_SAR_Assets];
+   // lists of shared events for  SAR_Assets 
+  vector<int> SAR_Assets_Scan_environment_for_signs_of_PID_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + On_Scene_Commander_source ]){ 
+     if( Stack[i]->name == Event_Scan_environment_for_signs_of_PID ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  On_Scene_Commander_Scan_environment_for_signs_of_PID_list.begin();
+          s != On_Scene_Commander_Scan_environment_for_signs_of_PID_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) On_Scene_Commander_Scan_environment_for_signs_of_PID_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + SAR_Assets_source ]){ 
+     if( Stack[i]->name == Event_Scan_environment_for_signs_of_PID ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  SAR_Assets_Scan_environment_for_signs_of_PID_list.begin();
+          s != SAR_Assets_Scan_environment_for_signs_of_PID_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) SAR_Assets_Scan_environment_for_signs_of_PID_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = SAR_Assets_Scan_environment_for_signs_of_PID_list.size();
+     if(On_Scene_Commander_Scan_environment_for_signs_of_PID_list.size() != len_to_compare) 
+throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = SAR_Assets_Scan_environment_for_signs_of_PID_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(On_Scene_Commander_Scan_environment_for_signs_of_PID_list[i], SAR_Assets_Scan_environment_for_signs_of_PID_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Provide_updates_to_OSC))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_updates_for_OSC))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  PID_source = Root_table[Event_PID]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Spot_object_of_interest))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  PID_source ]){ 
+       if( (  (Stack[i]->name == Event_Identify_self_as_PID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  PID_source = Root_table[Event_PID]; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  PID_source ]){ 
+       if( (  (Stack[i]->name == Event_Identify_self_as_PID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Maneuver_to_rescue_PID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  PID_source = Root_table[Event_PID]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Maneuver_to_rescue_PID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  PID_source ]){ 
+       if( (  (Stack[i]->name == Event_Present_for_rescue))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  SAR_Assets_source = Root_table[Event_SAR_Assets]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  SAR_Assets_source ]){ 
+       if( (  (Stack[i]->name == Event_Notify_OSC_of_PID_location_and_situation)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_PID_location_and_situation))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  On_Scene_Commander_source = Root_table[Event_On_Scene_Commander]
+; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Command_and_Control_source = Root_table[Event_Command_and_Control]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  On_Scene_Commander_source ]){ 
+       if( (  (Stack[i]->name == Event_Relay_survivor_location_and_situation))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Command_and_Control_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_relayed_survivor_location_and_situation)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_105_106_ob class
+
+//---- 2 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Receive_distress_signal); 
+      element[ 1 ]=  new Atomic_producer(Event_Pass_mission_information); 
+      element[ 2 ]=  new Atomic_producer(Event_Acknowledge_search_plan); 
+      element[ 3 ]=  new Atomic_producer(Event_Receive_relayed_survivor_location_and_situation)
+; 
+    } 
+};// end class Sq_1_2 
+
+//---- 3 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 11 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Receive_mission_information); 
+      element[ 1 ]=  new Atomic_producer(Event_Relay_mission_information); 
+      element[ 2 ]=  new Atomic_producer(Event_Attempt_contact_with_PID); 
+      element[ 3 ]=  new Atomic_producer(Event_Assess_environmental_conditions);
+ 
+      element[ 4 ]=  new Atomic_producer(Event_Receive_environmental_conditions)
+; 
+      element[ 5 ]=  new Atomic_producer(Event_Provide_search_plan); 
+      element[ 6 ]=  new Atomic_producer(Event_Communicate_search_plan_and_responsibilities)
+; 
+      element[ 7 ]=  new Atomic_producer(Event_Scan_environment_for_signs_of_PID)
+; 
+      element[ 8 ]=  new Atomic_producer(Event_Receive_updates_for_OSC); 
+      element[ 9 ]=  new Atomic_producer(Event_Receive_PID_location_and_situation)
+; 
+      element[ 10 ]=  new Atomic_producer(Event_Relay_survivor_location_and_situation)
+; 
+    } 
+};// end class Sq_5_6 
+
+//---- 4 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Send_distress_signal); 
+      element[ 1 ]=  new Atomic_producer(Event_Identify_self_as_PID); 
+      element[ 2 ]=  new Atomic_producer(Event_Present_for_rescue); 
+    } 
+};// end class Sq_9_10 
+
+//---- 5 ---- 
+class Sq_15_16 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_15_16 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Receive_relayed_mission_information)
+; 
+      element[ 1 ]=  new Atomic_producer(Event_Confirm_search_plan_and_responsibilities)
+; 
+      element[ 2 ]=  new Atomic_producer(Event_Scan_environment_for_signs_of_PID)
+; 
+      element[ 3 ]=  new Atomic_producer(Event_Provide_updates_to_OSC); 
+      element[ 4 ]=  new Atomic_producer(Event_Spot_object_of_interest); 
+      element[ 5 ]=  new Atomic_producer(Event_Maneuver_to_rescue_PID); 
+      element[ 6 ]=  new Atomic_producer(Event_Notify_OSC_of_PID_location_and_situation)
+; 
+    } 
+};// end class Sq_15_16 
+
+//---- 6 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Command_and_Control){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 7 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_On_Scene_Commander){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 8 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_PID){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 9 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_Physical_Environment){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Provide_environmental_conditions)
+; 
+    } 
+};// end class Comp_13_14 
+
+//---- 10 ---- 
+class Comp_17_18 : public Composite_producer { 
+public: // constructor 
+    Comp_17_18 (): Composite_producer(Event_SAR_Assets){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_15_16 ; 
+    } 
+};// end class Comp_17_18 
+
+//---- 11 ---- 
+class SCHEMA_Wide_Range_Search_for_Wreckage_and_Survivors: public Composite_producer {
+public: // constructor 
+    SCHEMA_Wide_Range_Search_for_Wreckage_and_Survivors(): Composite_producer(Event_Wide_Range_Search_for_Wreckage_and_Survivors){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 6 ]; 
+      element[0]= new Composite_secondary_producer(Event_Command_and_Control);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_On_Scene_Commander);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_PID);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new Composite_secondary_producer(Event_Physical_Environment);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new Composite_secondary_producer(Event_SAR_Assets);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[4] -> type = ROOT_node; 
+      element[5]= new SIMPLE_LIST_105_106_ob(Event_SIMPLE_LIST_105_106);
+    } 
+};// end class SCHEMA_Wide_Range_Search_for_Wreckage_and_Survivors
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example08_Operational_Process.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_12; temp_12.harvest();
+    Comp_7_8 temp_13; temp_13.harvest();
+    Comp_11_12 temp_14; temp_14.harvest();
+    Comp_13_14 temp_15; temp_15.harvest();
+    Comp_17_18 temp_16; temp_16.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Wide_Range_Search_for_Wreckage_and_Survivors temp_17; temp_17.harvest();
+   temp_17.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Wide_Range_Search_for_Wreckage_and_Survivors"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.mp
new file mode 100644
index 0000000..e930176
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.mp
@@ -0,0 +1,123 @@
+/* Example8_OperationalProcess.mp
+	modeling operational processes
+	
+Operational processes can be modeled to provide a common baseline against which 
+alternative proposed solutions may be assessed.  
+
+In this example, humans are conducting a wide area search in roles of Command and Control 
+(C2), On Scene Commander (OSC), Person in Distress (PID), and Search And Rescue Assets 
+(SAR Assets) apart from the OSC.
+An actor called Physical Environment represents behaviors in the natural environment.
+
+Actors may be partitioned and scoped according to the focus of the analysis.  The analysis
+prompting this model calls for an analysis of alternatives for the On Scene Commander role
+(e.g., manned helicopter, cutter, unmanned aerial/surface/underwater vehicles).
+
+A System of Systems (SoS) analysis might expand the "SAR Asset" actor into distinct SAR assets
+participating in or potentially participating in the scenario to study emergent behaviors of
+those interacting systems in a SoS construct.
+
+Run for scope 1 (there is no iteration in this example, so increaasing the scope will not 
+produce more scenarios). Only one scenario is produced because no decision points have been 
+added to this model yet.
+
+The "Sequence" or "Swim Lanes" layouts are the most appropriate for browsing traces here. 
+The "Sequence" mode yields views very similar to the UML or SysML Sequence Diagrams. 
+
+*/
+
+
+/* Actors */
+
+SCHEMA Wide_Range_Search_for_Wreckage_and_Survivors
+
+ROOT Command_and_Control:	Receive_distress_signal
+							Pass_mission_information
+               				Acknowledge_search_plan
+							Receive_relayed_survivor_location_and_situation;
+
+ROOT On_Scene_Commander:  	Receive_mission_information
+               			Relay_mission_information
+				Attempt_contact_with_PID
+				Assess_environmental_conditions
+				Receive_environmental_conditions
+				Provide_search_plan
+				Communicate_search_plan_and_responsibilities
+				Scan_environment_for_signs_of_PID
+				Receive_updates_for_OSC
+				Receive_PID_location_and_situation
+				Relay_survivor_location_and_situation;
+
+ROOT PID:  			Send_distress_signal
+				Identify_self_as_PID
+				Present_for_rescue;
+
+ROOT Physical_Environment:	Provide_environmental_conditions;
+
+ROOT SAR_Assets:		Receive_relayed_mission_information
+				Confirm_search_plan_and_responsibilities
+				Scan_environment_for_signs_of_PID
+				Provide_updates_to_OSC
+				Spot_object_of_interest
+				Maneuver_to_rescue_PID
+				Notify_OSC_of_PID_location_and_situation;		
+
+/* Interactions */
+
+COORDINATE 	$a: Send_distress_signal	FROM PID,
+			$b: Receive_distress_signal	FROM Command_and_Control
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Pass_mission_information	FROM Command_and_Control,
+			$b: Receive_mission_information	FROM On_Scene_Commander
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Relay_mission_information  	    	FROM On_Scene_Commander,
+			$b: Receive_relayed_mission_information FROM SAR_Assets
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Assess_environmental_conditions 	FROM On_Scene_Commander,
+			$b: Provide_environmental_conditions 	FROM Physical_Environment
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Provide_environmental_conditions FROM Physical_Environment,
+			$b: Receive_environmental_conditions FROM On_Scene_Commander
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Provide_search_plan  	FROM On_Scene_Commander,
+			$b: Acknowledge_search_plan FROM Command_and_Control
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Acknowledge_search_plan  	             	 FROM Command_and_Control,
+			$b: Communicate_search_plan_and_responsibilities FROM On_Scene_Commander
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Communicate_search_plan_and_responsibilities  FROM On_Scene_Commander,
+			$b: Confirm_search_plan_and_responsibilities 	  FROM SAR_Assets
+	DO ADD $a PRECEDES $b; OD;
+
+On_Scene_Commander, SAR_Assets SHARE ALL Scan_environment_for_signs_of_PID;
+
+COORDINATE 	$a: Provide_updates_to_OSC  FROM SAR_Assets,
+			$b: Receive_updates_for_OSC FROM On_Scene_Commander
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Spot_object_of_interest  	FROM SAR_Assets,
+			$b: Identify_self_as_PID		FROM PID
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Identify_self_as_PID  	FROM PID,
+			$b: Maneuver_to_rescue_PID	FROM SAR_Assets
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Maneuver_to_rescue_PID  FROM SAR_Assets,
+			$b: Present_for_rescue	    FROM PID
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Notify_OSC_of_PID_location_and_situation  	FROM SAR_Assets,
+			$b: Receive_PID_location_and_situation			FROM On_Scene_Commander
+	DO ADD $a PRECEDES $b; OD;
+
+COORDINATE 	$a: Relay_survivor_location_and_situation  	    	FROM On_Scene_Commander,
+			$b: Receive_relayed_survivor_location_and_situation FROM Command_and_Control
+	DO ADD $a PRECEDES $b; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp.txt
new file mode 100644
index 0000000..b5288e6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example08_Operational_Process tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.tree
new file mode 100644
index 0000000000000000000000000000000000000000..6cda1cdbd0b0917cd505a3eb2d8fc19f5eb82ca3
GIT binary patch
literal 18944
zcmeI4e{39OddDYDJh2_eNgT&9P6&?kgB*2(f9|f+92Z|4E=fb;+BrzMT;8nhG2XD=
zHM?s=P)fNdN+Wbd5v3@K5aO;Wr3j@6(JG=8-9<SRp$Jh#BZLsjrHG;kA?_3*6rq`Z
zpLw4d@67v-J=Im}KYgRu@9aCD_xrr>^ZuOKg~1BLn2&!oh72|m2OsQtNNbVezSD@<
zWEiGVRb$UL4BV<TnRi-ouMIJQxD9bP;(i&cz<@Ot;Gew!d554^iS#g12spz?7b49f
zPE$SRxjc#(gZuXFcb=pxH7MM1m7yGkI}wvR8IwDu=PJ+&=PCWY@?5yWu;C=~rClxi
zf$}KW=mY0jq>GTgU>F0t`VHr0T)!^4+azY#=p*MXaEm#uld1DI`F*}&FTv-_xW5$X
z2S}G8{e%m1Vj3^ikUi5#)RH~Z_+|;&!{=poJ$=5q%wA4*EAUSSy8$|%8pfmf!o!r7
z2O3WpCT_4-fV&2}G={DtrE&F{ycfxR#oX6(aJQKIPI3!SJF2f^&NHaK&QcnEYA}uQ
zW(-j|E?0sh|6zQ)DIDvj%`$bG=eey3^vinaQ@?DUC;KIZ{{A6xGvn7@h5LJ=?2Dh+
ztGVC7nMU#v8t?8nxZRyI^SqMI{od6~J3Rln{F)GdSi`d)UH*;`e?-HxKO_66g!ZGD
zGcC(Ta!)dMTypL@&?5b6ujRCr({(a+elGnz>-c$Y4!hp?d2tTT8$Yjj_2cpL29KY&
zW&Vuk<yD})>rwB^^Za>`%@j+{yQ<yN(MiksaGsG%Pgu^?dB$*l^r-XE9Ncy0KAVI4
zin*^P=l1i4P(R<2_sZMi^`Fac4Dk!RnLbm(DeuQSx!*Q%`aMqXlBrWitDrG6j+-=k
z+>ZgSRl{*V2Dmm2$Nd=SpYrv`8@CBrHj?wk?Ka7o#$W#(t#`0riRIJ{&h85AbBKo!
z#}NyN#}H3eU_L+lm-Zj={KnphatpBi$#SQ`oJBl`cwXvz<G}5QKbCf|yh#26xQmEa
z5U(O$L%boQ%Wro1`QChSZsHy`ZKul1L4WYLC||$b@mN1!j>m=>mW-DBB`|Iq=gV>1
zBzbo}-_8Br&S?jyoicS=rJ83Upy$nlHhDMFt~U=7b8y}~*e1Eac+ri29tQz#w^vi?
zfBNh2IH3A@{b<v?-#=f@`}?uacH#4Z`8d<aR%p2_b2)I2&B7gL?gY4}XW`B;cNW~a
zS-A7ey$0@0ISQOhxPDJ<>rAT+?50(Q^AWh~h+iUpg9r~eHHZy}YY;K!BgfSy&kIsD
zlDjJ=*A|o89FuF0$#ur$x?^&Qm|QBz(aPd%fzSI9_aYuZ97fCrxkx`x$K)Q1$vqzA
zOyj|4>~323_AIk8|K0VeN3Lf$=DWc;hWegFJdJo3@f_lL8Qt}So+IcymgF?WX|GJ3
z3k&96PkB9|^?KHI^djscf}4H)<n=_(Fxig4I_9m5SEN5o<LkTaE!_S;37wm_q8(T9
zJoJ5}*Mk0|nz-kJ8^L^bou9aVy+@;alXdA~t1S4sRo*GK>}J`etNR0uZhfV!@9JQA
zUw30Lzf97-bal6BblX{XOR&7J+aJu=>h@`L_p<JRV0mA6IG7*SrGEB27+B}C(4}=g
zSBdqz5>y0toVgR=o}Ps}!`xYL=Vsx~Gxr*}H)r84G4~F*_ch$dm2$uO1l$kNj!(gT
zq2auJ?f0yA6C57gBimbLO25=#eQGeHxi!qSfV*oJuA8|8xNRoZk$<hB=UmhHwuYW_
zO=JHe8_&6>ab}T?=Qpf3we<XE8h=x3<N3`r{-f5$^P6dGSZudYI<=UdHzL=?-84dH
zLL|2*Cbu^xHxQE>jLErAkTdOo_m<c=pP9yvr8drIrt!B+ZJf^{+joCVI|pKN560vU
z#^eqKIeHu697ZdT1oLM+Ag|o_0^2d(X<zA=X_%qUaral+S7zPMN~jZJV7}~t-6t@v
z??w6~(jOsx3f!|A?gi#vWbPGkZ<w@C%{))Nt+v_WeM7N(nf2afy$_-HsmAUX%-vw_
zCOA7}x5{hzj0YXwR}{PT3uSv7kWzcsEHs==3st{#GS|)AJ>YgO47PVrW0&_G#qL4Y
zJH&e9&?{){9%Jqa=1zfoCS><{ja}ZC6uU36-pj1_I`rPs*nNk&%glWM?vs$+&oy>=
z-=dzkcLwLNP3MZQp-1P6TfwsazPF%irqeW6uI?_4Ze5ksZ3>q6bz6h^VQE))w??;(
zbrZqzzV5bQzE<~7HM+Z5cYm<FuX`w%uhre7(H&>qLa@BAdn}l*>b`o)zK_;n^xt0h
zTwEdF0HDuK;#uo-usrS06iDCR2j*<>zI(ImkE=VNsrNaq_xWIXzup&u`DK#srK|gA
z8r_SmdnH)j*S#9d*Xj;xbg!}QjbM3S_hv9(t2?C8#mjbgepKOQds*;x>x21ah<j-o
zzgcXzQva=}v)55-)!BDa`p<RtCQ2)p*mw_S8b4lQ<2{&Z{O2+o&oelO)YJ0}&LQ=Z
z|4qG(=NjlNxA9yPxgW0%)+dr%6XfFVi*CPS-3aU}EkP}6IPF&y%HMB~<R>PbR+S}=
z{AuF_yR%+@pBM_ReXLgj`y16V&WjQDH>oV?#<frDxAz9bJ?DGxaqp@&-1oR`QeW$*
zglgNt{z^gdQ%Yrti(5~vpSGx)4)$#div6uBOI%$0k$$>|{j^Q$YyGrawe8?MKtZYJ
z9+f37ZauYr+N)|hIA>5$><_3cadGWO`e~5;v|s9L{d7pR?cn@EL8<3ql_f52J+*!s
zRy7@*izq1eM^%=%xb`FcG{$}!m-<>i6;#^}&RZ0edX`j{xVZJy`e|C#ba0NNpxA#*
zWr>SxKhjT+v!9Mhed7H074)2OvRa<IPa*vgK0i}!IL}vu3UMzn_cC*@gL|twxE{Zw
zw!z_Zq@wpe>wUm_pFr<(joq)A`#p2tfir7@c9-G{=}>U^oT=Dtu959sjg;EEvBq%P
zYt;5`VQwpP_ktS;*?mxBm(QV!-BH#XW4%e}J+85Pg1M8-od$O{WcQrLE}v5syXRT&
zHP(9*dY3eI-(&85<~|1ZS;+2J8oPXs4eZO`YB-!(DFnC*?~UtB=XvMa^7%pMAg5Mk
zsg%;*x<#^omm;P9ZC-@4#Uhp4%v?KjTfp@%3f6D0YSZEKuVVKA>pjSNqtMG~>^{ca
z<IJ4^_jJha8I4^&A1ii$$$IBl?>zJ_XzX5O?h<qFf%_<A_qxU|pPv=GU$Wj;toJSS
zDr!|f*VfAZs6$Hq(Nt?Vt+hcvx8a3dC^+?UEy1~YxsCTRI5#h+_c3_GutL74TD3y{
z?&L4}?H^PA&K2^#pS42%J_XNB_lL$?LSx52xAis3_l2TSmOs@f-xL00qx_u<^d1Q5
zZPV!a=bN9cl<yb+VWlj8d8Itx|86Dy-o)K64ute}YxMkcz^|L+`^o=ml6qCQ$?r|>
zzD@q_2KD>%kluccp1)ttYnJ8jY?kGBHq(1g)5taZ?R_w$cSxgm%<CuE4?iD_Yk2H4
z6w2qf`+RUjWr>Ts|7rK%tg7i?|DvGS&#5eNaqZLm&^{kb*2?FDg4EZZQ;w;&9qfw~
zlzKj)vc$!$r`AtTs+tb=TMCN(<0?yBT>FuJI>CNADfP8}I<4Avu#Zzv>iLYy5*N3g
zT0cFjYC1R{P*ChYr?SMwwIAuHGwi3cQeW$*bE<6z=MD-=Jzr8;;^Nj*>!+7hO$X;0
z3X1(#RF=57_9OlDD*NfY)Ytmyf@<5rIf;T&&o@<;xVZJy`spoI)4}<Rf@1$|l_f5&
z{YXFkiv4s^>MM4y=<O=pdwR|^zV}!3`$?_;-&e~xIJZ$y^gmEp;^MYn>;Df`O$X;e
z3X1)!Dob2k`;q?ti2eVu)YtmyGu5_(b0!6)o}a5MadGRZ_0t!sri1e<1;zdil_f5&
z{YXE3$$t7u>TCV<t!mrBxtM}d&s!=>T-<tU{q&ux>EOIgL9tJVRZWO%KhjUeVtL-E
zz?a_$T0hmwd*$XGoZ~4d^{i7_;^Nj*>!+ovrc)>Vq1dli+5d_CNIx~OpBkmU!nG_m
z?4RIyrFF6V9Yot4+-Bxdb8uUj>z{+Wm$`vCxIyL)O3pNXv0gqW{rh_Pobkna`8`AZ
z2LD`tFnq3;Wy!BzaQyS?Z#T&ACzfxN<u`4VzoYo+M*lhMry;#@jh=t5>suwi7df~}
z>YZ98f1mO9t9-pfA-#e|&p-eCY_%-^Ppf75%d6%0Ew@(t?G+)tV;VjGobc=0W%--8
z%koug<o7YXYy9W7!y&zs8a>`mP2+cKq)z1>vivXZkl*LL&7Z%xgTD`I@#~uo>7Ul<
z`}@UjTj+Zs%(Jypf74p|`;F~u<?}I~%Z5XGXEl2My1KSimj8aMEI-~VpTAGE`t2VH
z>7CQ)`Rh-5oh<*vI$8eZb@aOu)3~(Guit1$@4QBj=c#G@Td}XdKluLOf`-SurQohV
zR!IM%hR6K%`LPgxMZ;qr`}{*8{;Gz@eD?YA5Pwa>V_y4whSp{JCxiR_lea$I;Q4=3
z@{!y(%o+GG6hb6dQ76~C+Bvv7=9=c<nweWa2e*;A_Bpst=C;nk-NW3@Ik?@-?bmQe
zu>Rj)XV?!TJ&ZJq^hgAkWp0|eCnLDy%>A6X=OVZ>%>9zNS0lLd%w1saqT~YaSue>v
zIeO$@2jhl<J3l5u<MBNWkMZO4xe))6hQ~Pa`Fx1KuHiABe10;-f2rXyu6+KH5dV#a
z$N2L3LWnn(xcAEcI2dO>Ukvdz8Xn`#=Sv~JLBnI*`TSJy+%=sp;P+2z8RE;&M=sZ*
z=S<`I7521-Z`JdP?s`3E8lN<3bvNpHMR${)GmX_vTHU+!yrSEt=S<_^ZCc&UdS20O
z*K_c1v(znHmubD|Tq4(ttw?FTxL1}BthdDNWNwhTgAv>z=Ej*TL~teMo?z}&1osqk
z&ocKy1ot9yuQ2yU1otn@{ffDFBe*NfU1jcC1b3aeFPZyBa_%~X_sedI-+}z0pOt?8
zR@!kVW!WEvyQSw$W9tU(IQve|E4sFxGmT>#wYtXAvRckuD!LVV4)b`GR(FA(S9DE1
zhk1OvR<}yeE4np$4)b`8R<~BqE4p=h4*k}m)m^IR72SG0hkjeD)osx8if*HxGmW=e
zwYp7uUeRsVbEfg#I@0|^=hgpqd2eL@fB#EQ{9pF}qo{&e92vJJ(p6TrB<Oc<mBo?#
zq}BF7X4Ddc>D)t>7_!oZk#RAWFNg;U*2u$Y<fU_?VrZ%`ote%TiZz+s<WxzFWwO?y
z{8Y)it}Nv9rQ+grDL;`J5!SSoD-~OIJeHoA%v$X!v2W5Uq)VB6E}azvh5U$BEN-5d
zynR++`S$$81lgvzJ)bKT^4a=*IWaV1<t${lH?6|TL2JayOj}|U4Jtrb6f+OOPSZdd
z*Atmy5oSduhbB$9Ran_K@^CKyXx17<+lsQili75xE@wR|s2QS^9?n|JiW#cBNRLpx
zMSill=%H+W7!4T9rXOk;7(ZIfjNsFb+;pap&rP7kHA8)aqOVxAO2ztMX>xXTVG45e
zpOaP7|4Tv8e;|IhSNVdKO&_&JMUnk1viT9Wwr=Z-nbMT|X_d!o+I8C?Y3N$q)K@B5
z6O$z|0xzOH;?YcLT;KtI`OvQW2KMX_dv*=&7ai?Ah>6Ovbhc<!!M~HDOLWVNq)64c
zIUOCMqw@}GBb;l^G#!qB_-KZFRc!HU83ioI7?`F(SLXgU>d~njd|C?RyAD9VPC_^{
zoXNt3RjkIal>>^a)g?N*`7$XwQfr4s(z){bxg(keMp5L)sOkQ&nVKAh#i9%B8`|FL
z)g4SkCv1?8o};U(iq<1jR&K;HhaM3fqLY#ykywbN7k+LSvM{VeW42+}D27pH>?j<Q
z9TVvy)wF&9tw*+7LtKtbSuLLbq8z-an4c<)SaOnMaA$H=R10))Vx8AOZ^&te(k4u|
zu}op2ynnR)(CAgf^I|D4;KY?flbA;N;Ug9X8~mNgl`Pb}RI`2GzQO)od;9k9Sh_u*
zFN|h#)Z3k1qO-duE$~Q`p{Z9h>|X}3UeVQFp3&7Kx)S9X-5sL4Gmw!K-KpyFd{M4<
zjrXN<*3`6B5U8hgC3$$$-n{E{)SO30M9)`wHC%@NLEC6ym`r1G6>_HZc)9W3r07l6
zm$kE_9mBM}yPWCi5<S6;UXchiGJ!#ps2<wcH@HLe?b%Z|G@dS4ec7x?Bt;^%xJVyI
zdBrVPPIif8KsnhfQUT>uk4OdF*V`d_JC_uX=0?V`qGcX;mz;(D)>wKfTUu7WR&-)O
zcLsBkqB9l9>FN?)-NBq*(cK=%>FyETiN!P$U0>2N8MxouBYG2|RSGLmd(d`Ihv*6A
zBt=iKHi<5g2-YUqA(FvT$)rdIOQpI*Dp)GjD|*|j@e)&X^omY-)!8FD6K-Bthv@2*
zS4q*8a<96vigs6GIu%Q1(V|td%4@KDzqd>DcGr+%FD(pGvb$IG$g7?n(IdqZ9U>vc
k6TKoS?<RXhQr=B<h?KmW!fKtW8W`NMeMkR}A#axbH<Z;)>;M1&

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.txt
new file mode 100644
index 0000000..1a99082
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example08_Operational_Process.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Command_and_Control: 	1 traces (0 MARKed) 	5 events 
+
+completed On_Scene_Commander: 	1 traces (0 MARKed) 	12 events 
+
+completed PID: 	1 traces (0 MARKed) 	4 events 
+
+completed Physical_Environment: 	1 traces (0 MARKed) 	2 events 
+
+completed SAR_Assets: 	1 traces (0 MARKed) 	8 events 
+
+completed Wide_Range_Search_for_Wreckage_and_Survivors: 	1 traces (0 MARKed) 	32 events 
+
+Elapsed time 0.007554 sec, Speed: 8339.95 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.cpp
new file mode 100644
index 0000000..bd3e959
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.cpp
@@ -0,0 +1,541 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Employee_Employer trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_SendArrivalDate
+    , Event_MedicalCheck
+    , Event_ReadyToWork
+    , Event_EmployeeArrival
+    , Event_Fill_HR_DB
+    , Event_ProvideOffice
+    , Event_ProvideComputer
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_29_30
+       // ADD operations 
+       // ROOT events 
+    , Event_Employee
+    , Event_Employer
+       // main schema event 
+    , Event_Employee_Employer }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "SendArrivalDate"
+     , "MedicalCheck"
+     , "ReadyToWork"
+     , "EmployeeArrival"
+     , "Fill_HR_DB"
+     , "ProvideOffice"
+     , "ProvideComputer"
+     , "SIMPLE_LIST_29_30"
+     , "Employee"
+     , "Employer"
+     , "Employee_Employer" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_29_30_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_29_30_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Employee_source = Root_table[Event_Employee];
+   // lists of shared events for  Employee 
+  vector<int> Employee_MedicalCheck_list;
+  vector<int> Employee_ReadyToWork_list;
+
+  int Employer_source = Root_table[Event_Employer];
+   // lists of shared events for  Employer 
+  vector<int> Employer_MedicalCheck_list;
+  vector<int> Employer_ReadyToWork_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Employee_source ]){ 
+     if( Stack[i]->name == Event_MedicalCheck ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Employee_MedicalCheck_list.begin();
+          s != Employee_MedicalCheck_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Employee_MedicalCheck_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_ReadyToWork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Employee_ReadyToWork_list.begin();
+          s != Employee_ReadyToWork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Employee_ReadyToWork_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Employer_source ]){ 
+     if( Stack[i]->name == Event_MedicalCheck ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Employer_MedicalCheck_list.begin();
+          s != Employer_MedicalCheck_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Employer_MedicalCheck_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_ReadyToWork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Employer_ReadyToWork_list.begin();
+          s != Employer_ReadyToWork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Employer_ReadyToWork_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Employer_MedicalCheck_list.size();
+     if(Employee_MedicalCheck_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Employer_ReadyToWork_list.size();
+     if(Employee_ReadyToWork_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Employer_MedicalCheck_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Employee_MedicalCheck_list[i], Employer_MedicalCheck_list[i]);
+   } 
+   len_to_compare = Employer_ReadyToWork_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Employee_ReadyToWork_list[i], Employer_ReadyToWork_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Employee_source = Root_table[Event_Employee]; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Employer_source = Root_table[Event_Employer]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Employee_source ]){ 
+       if( (  (Stack[i]->name == Event_SendArrivalDate))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Employer_source ]){ 
+       if( (  (Stack[i]->name == Event_EmployeeArrival))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Employer_source = Root_table[Event_Employer]; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Employer_source ]){ 
+       if( (  (Stack[i]->name == Event_Fill_HR_DB))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Employer_source ]){ 
+       if( (  (Stack[i]->name == Event_ProvideComputer))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_29_30_ob class
+
+//---- 2 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_SendArrivalDate); 
+      element[ 1 ]=  new Atomic_producer(Event_MedicalCheck); 
+      element[ 2 ]=  new Atomic_producer(Event_ReadyToWork); 
+    } 
+};// end class Sq_1_2 
+
+//---- 3 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Fill_HR_DB); 
+      element[ 1 ]=  new Atomic_producer(Event_MedicalCheck); 
+    } 
+};// end class Sq_5_6 
+
+//---- 4 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_ProvideOffice); 
+      element[ 1 ]=  new Atomic_producer(Event_ProvideComputer); 
+    } 
+};// end class Sq_7_8 
+
+//---- 5 ---- 
+class Set_9_10 : public SET_node_producer_container { 
+public: // constructor 
+    Set_9_10 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+    } 
+};// end class Set_9_10 
+
+//---- 6 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_EmployeeArrival); 
+      element[ 1 ]=  new Set_9_10 ; 
+      element[ 2 ]=  new Atomic_producer(Event_ReadyToWork); 
+    } 
+};// end class Sq_11_12 
+
+//---- 7 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Employee){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 8 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_Employer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 9 ---- 
+class SCHEMA_Employee_Employer: public Composite_producer {
+public: // constructor 
+    SCHEMA_Employee_Employer(): Composite_producer(Event_Employee_Employer){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Employee);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Employer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_29_30_ob(Event_SIMPLE_LIST_29_30);
+    } 
+};// end class SCHEMA_Employee_Employer
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example09_Employee_Employer.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_10; temp_10.harvest();
+    Comp_13_14 temp_11; temp_11.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Employee_Employer temp_12; temp_12.harvest();
+   temp_12.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Employee_Employer"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.mp
new file mode 100644
index 0000000..b442399
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.mp
@@ -0,0 +1,50 @@
+/* Example9_Employee_Employer.mp
+
+The web site http://www.infoq.com/articles/bpelbpm 
+“Why BPEL is not the holy grail for BPM “ 
+provides an example of a process that can be described 
+in BPMN but not in BPEL. 
+It is claimed to be a challenge for process specification.
+
+Here is the description. 
+“When a new employee arrives at a company, a workflow is instantiated. 
+First a record needs to be created in the Human Resources database. 
+Simultaneously, an office has to be provided. 
+As soon as the Human Resources activity has been completed, 
+the employee can undergo a medical check. During that time, 
+a computer is provided. This is only possible when both an office 
+has been set up and an account created in the information system 
+from the human resource database. When both the computer and the 
+medical check have been performed, the employee is ready to work. 
+Of course, you may want to model this simple process differently, 
+but the point here is that you cannot define a structured 
+parallel workflow [in BPEL] that is equivalent to this one ..." 
+	
+	Run for scope 1. The "Sequence" or "Swim Lanes" 
+	layouts are the most appropriate for browsing traces here.
+	Some box reshuffling may be needed to improve the trace layout. 
+*/
+
+SCHEMA Employee_Employer
+
+ROOT Employee: 	SendArrivalDate
+				MedicalCheck
+				ReadyToWork;
+				
+ROOT Employer: 	EmployeeArrival  
+	/* these are concurrent threads */
+			{  Fill_HR_DB   	MedicalCheck,
+		   	   ProvideOffice   	ProvideComputer }
+			ReadyToWork;
+
+Employee, Employer SHARE ALL MedicalCheck, ReadyToWork;
+
+/* coordination of two events in different threads */
+COORDINATE	$a: SendArrivalDate 	FROM Employee, 
+		    $b: EmployeeArrival 	FROM Employer
+	DO 	ADD $a PRECEDES $b; OD;
+
+/* coordination between two events deep inside the process */
+COORDINATE 	$a: Fill_HR_DB   	FROM Employer, 
+		    $b: ProvideComputer FROM Employer
+	DO 	ADD $a PRECEDES $b; 	OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp.txt
new file mode 100644
index 0000000..9275d97
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example09_Employee_Employer tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.tree
new file mode 100644
index 0000000000000000000000000000000000000000..443d1d229c1b5192f58b56554752a56f354d6bb8
GIT binary patch
literal 5632
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
Tcyi~&=*Vbsbn^fDx2*ra?iL|E

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.txt
new file mode 100644
index 0000000..e250102
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example09_Employee_Employer.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Employee: 	1 traces (0 MARKed) 	4 events 
+
+completed Employer: 	1 traces (0 MARKed) 	7 events 
+
+completed Employee_Employer: 	1 traces (0 MARKed) 	12 events 
+
+Elapsed time 0.000332 sec, Speed: 69277.1 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.cpp
new file mode 100644
index 0000000..404ebe7
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.cpp
@@ -0,0 +1,1176 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Pipe_Filter trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send
+    , Event_receive
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_29_30
+    , Event_SIMPLE_LIST_39_40
+    , Event_SIMPLE_LIST_65_66
+    , Event_SIMPLE_LIST_75_76
+    , Event_SIMPLE_LIST_103_104
+       // ADD operations 
+       // ROOT events 
+    , Event_Producer
+    , Event_Filter1
+    , Event_Filter2
+    , Event_Consumer
+       // main schema event 
+    , Event_Pipe_Filter }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send"
+     , "receive"
+     , "SIMPLE_LIST_29_30"
+     , "SIMPLE_LIST_39_40"
+     , "SIMPLE_LIST_65_66"
+     , "SIMPLE_LIST_75_76"
+     , "SIMPLE_LIST_103_104"
+     , "Producer"
+     , "Filter1"
+     , "Filter2"
+     , "Consumer"
+     , "Pipe_Filter" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_11(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_12(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_20(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_47(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_48(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_55(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_56(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_87(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_88(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_89(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+int special_function_90(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 13 ---- 
+int special_function_93(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 14 ---- 
+int special_function_94(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 15 ---- 
+bool Quantified_expr_13_14(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_send)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_11(current_host, s_variable ) > special_function_12(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 16 ---- 
+bool Quantified_expr_49_50(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_send)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_47(current_host, s_variable ) > special_function_48(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 17 ---- 
+class SIMPLE_LIST_29_30_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_29_30_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_13_14(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_19(current_host, Root_table[Event_Filter1])!= special_function_20(current_host, Root_table[Event_Filter1]))
+){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"some messages have been lost in Filter1";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_29_30_ob class
+
+//---- 18 ---- 
+class SIMPLE_LIST_39_40_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_39_40_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  Producer_source = Root_table[Event_Producer]; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+  int  Filter1_source = Root_table[Event_Filter1]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Producer_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  Filter1_source ]){ 
+       if( (  (Stack[i]->name == Event_receive))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_39_40_ob class
+
+//---- 19 ---- 
+class SIMPLE_LIST_65_66_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_65_66_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_49_50(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_55(current_host, Root_table[Event_Filter2])!= special_function_56(current_host, Root_table[Event_Filter2]))
+){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"some messages have been lost in Filter2";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_65_66_ob class
+
+//---- 20 ---- 
+class SIMPLE_LIST_75_76_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_75_76_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  Filter1_source = Root_table[Event_Filter1]; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+  int  Filter2_source = Root_table[Event_Filter2]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Filter1_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  Filter2_source ]){ 
+       if( (  (Stack[i]->name == Event_receive))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_75_76_ob class
+
+//---- 21 ---- 
+class SIMPLE_LIST_103_104_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_103_104_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  Filter2_source = Root_table[Event_Filter2]; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+  int  Consumer_source = Root_table[Event_Consumer]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Filter2_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  Consumer_source ]){ 
+       if( (  (Stack[i]->name == Event_receive))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( ( special_function_87(current_host, Root_table[Event_Consumer])!= special_function_88(current_host, Root_table[Event_Producer]))
+){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert << ( special_function_93(current_host, Root_table[Event_Producer])-
+ special_function_94(current_host, Root_table[Event_Consumer])); 
+     convert <<" messages did not reach Consumer";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   Mark = 'M'; // MARK
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_103_104_ob class
+
+//---- 22 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 23 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 24 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive); 
+      element[ 1 ]=  new Itr_5_6 ; 
+    } 
+};// end class Sq_7_8 
+
+//---- 25 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 26 ---- 
+class Itr_41_42 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_41_42 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_41_42 
+
+//---- 27 ---- 
+class Sq_43_44 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_43_44 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive); 
+      element[ 1 ]=  new Itr_41_42 ; 
+    } 
+};// end class Sq_43_44 
+
+//---- 28 ---- 
+class Itr_45_46 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_45_46 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_43_44 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_45_46 
+
+//---- 29 ---- 
+class Itr_77_78 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_77_78 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_77_78 
+
+//---- 30 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Producer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 31 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_Filter1){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_9_10 ; 
+      element[ 1 ]=  new SIMPLE_LIST_29_30_ob(Event_SIMPLE_LIST_29_30); 
+    } 
+};// end class Comp_31_32 
+
+//---- 32 ---- 
+class Comp_67_68 : public Composite_producer { 
+public: // constructor 
+    Comp_67_68 (): Composite_producer(Event_Filter2){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_45_46 ; 
+      element[ 1 ]=  new SIMPLE_LIST_65_66_ob(Event_SIMPLE_LIST_65_66); 
+    } 
+};// end class Comp_67_68 
+
+//---- 33 ---- 
+class Comp_79_80 : public Composite_producer { 
+public: // constructor 
+    Comp_79_80 (): Composite_producer(Event_Consumer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_77_78 ; 
+    } 
+};// end class Comp_79_80 
+
+//---- 34 ---- 
+class SCHEMA_Pipe_Filter: public Composite_producer {
+public: // constructor 
+    SCHEMA_Pipe_Filter(): Composite_producer(Event_Pipe_Filter){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_Producer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Filter1);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_39_40_ob(Event_SIMPLE_LIST_39_40);
+      element[3]= new Composite_secondary_producer(Event_Filter2);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_75_76_ob(Event_SIMPLE_LIST_75_76);
+      element[5]= new Composite_secondary_producer(Event_Consumer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_103_104_ob(Event_SIMPLE_LIST_103_104);
+    } 
+};// end class SCHEMA_Pipe_Filter
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example10_Pipe_Filter.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_35; temp_35.harvest();
+    Comp_31_32 temp_36; temp_36.harvest();
+    Comp_67_68 temp_37; temp_37.harvest();
+    Comp_79_80 temp_38; temp_38.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Pipe_Filter temp_39; temp_39.harvest();
+   temp_39.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Pipe_Filter"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.mp
new file mode 100644
index 0000000..63896c9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.mp
@@ -0,0 +1,55 @@
+/*  Example10_Pipe_Filter.mp 
+    pipe/filter architecture model with 2 filters
+
+    assumptions: 
+    	1) not all items sent by Producer will be received by Consumer, 
+        2) after a message has been sent, it cannot be send repeatedly,
+        3) received message can stay in the Filter for while, 
+        	before being sent (if at all).
+*/
+
+SCHEMA Pipe_Filter
+
+ROOT Producer: (* send *);
+
+ROOT Filter1: (* receive (* send *) *)
+/* Filter can send only after receive */
+    BUILD { /* can send only what has been received */
+        ENSURE FOREACH $s: send 
+        	(#receive BEFORE $s > #send BEFORE $s);
+
+        /* not everything received will be sent */
+		IF #send != #receive THEN 
+        	SAY("some messages have been lost in Filter1" ); FI;
+	};
+
+COORDINATE  $s: send    FROM Producer,
+            $r: receive FROM Filter1
+    DO ADD $s PRECEDES $r; OD;
+
+ROOT Filter2: (* receive (* send  *) *)
+/* Filter can send only after receive */
+    BUILD { /* can send only what has been received */
+        ENSURE FOREACH $s: send 
+        	(#receive BEFORE $s > #send BEFORE $s);
+        
+        /* not everything received will be sent */
+		IF #send != #receive THEN 
+        	SAY("some messages have been lost in Filter2" ); FI;
+	};
+
+COORDINATE  $s: send    FROM Filter1,
+            $r: receive FROM Filter2
+    DO ADD $s PRECEDES $r; OD;
+
+ROOT Consumer: (* receive *);
+
+COORDINATE  $s: send    FROM Filter2,
+            $r: receive FROM Consumer
+    DO ADD $s PRECEDES $r; OD;
+
+IF #receive FROM Consumer != #send FROM Producer THEN
+	SAY( #send FROM Producer - #receive FROM Consumer  
+        " messages did not reach Consumer");
+	MARK;
+FI;
\ No newline at end of file
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp.txt
new file mode 100644
index 0000000..b7135b1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example10_Pipe_Filter tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.tree
new file mode 100644
index 0000000000000000000000000000000000000000..cd2418e386c88f4eaded41a0babb08d2c02d91cd
GIT binary patch
literal 14848
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.txt
new file mode 100644
index 0000000..ac7ea05
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example10_Pipe_Filter.txt
@@ -0,0 +1,18 @@
+generating traces for scope 1 
+completed Producer: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Filter1: 	3 traces (0 MARKed) 	7 events 
+		average 2.33333 ev/trace 	min 1 	max 3
+
+completed Filter2: 	3 traces (0 MARKed) 	7 events 
+		average 2.33333 ev/trace 	min 1 	max 3
+
+completed Consumer: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Pipe_Filter: 	4 traces (2 MARKed) 	36 events 
+		average 9 ev/trace 	min 5 	max 11
+
+Elapsed time 0.000711 sec, Speed: 78762.3 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.cpp
new file mode 100644
index 0000000..8665c0b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.cpp
@@ -0,0 +1,1213 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Publish_Subscribe trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Register
+    , Event_Unsubscribe
+    , Event_Send
+    , Event_Receive
+       // composite events 
+    , Event_Client
+       // top coordination operations 
+    , Event_Coordinate_45_46
+    , Event_Coordinate_49_50
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_29_30
+    , Event_SIMPLE_LIST_86_87
+       // ADD operations 
+       // ROOT events 
+    , Event_Publisher
+    , Event_Subscribers
+       // main schema event 
+    , Event_Publish_Subscribe }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Register"
+     , "Unsubscribe"
+     , "Send"
+     , "Receive"
+     , "Client"
+     , "Coordinate_45_46"
+     , "Coordinate_49_50"
+     , "SIMPLE_LIST_29_30"
+     , "SIMPLE_LIST_86_87"
+     , "Publisher"
+     , "Subscribers"
+     , "Publish_Subscribe" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_51_52 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 AFTER temp2 
+     return (bool)( (current_host ->follows_matrix)[temp1 * len + temp2]); 
+ } 
+
+//---- 2 ---- 
+bool Event_comparison_expr_53_54 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 3 ---- 
+int special_function_7(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Register){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_8(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Unsubscribe){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_13(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Register){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_14(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Unsubscribe){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_21(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Register){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_22(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Unsubscribe){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_69(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(find_pair_in_table( i, pivot, Follows )) { 
+         if(   Stack[i]->name == Event_Receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_72(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(find_pair_in_table( i, pivot, Follows )) { 
+         if(   Stack[i]->name == Event_Receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+bool Quantified_expr_15_16(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int u_variable;
+     int pivot_u_variable = 0; 
+
+     // loop 1 for u_variable 
+     for( u_variable = 0; u_variable < len; u_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ u_variable  * len +  pivot_u_variable 
+]) && 
+           (   
+            (Stack[u_variable]-> name == Event_Unsubscribe)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_13(current_host, u_variable ) > special_function_14(current_host, 
+u_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 12 ---- 
+bool Quantified_expr_23_24(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_Send)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_21(current_host, s_variable ) > special_function_22(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 13 ---- 
+class SIMPLE_LIST_29_30_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_29_30_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_7(current_host, Root_table[Event_Publisher])== special_function_8(current_host, Root_table[Event_Publisher]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_15_16(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_23_24(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_29_30_ob class
+
+//---- 14 ---- 
+class SIMPLE_LIST_86_87_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_86_87_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int client_variable; // thread variable
+  vector<int> client_variable_list; // list of coordinated events
+  int  Subscribers_source = Root_table[Event_Subscribers]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for client_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      client_variable = i; 
+      if( client_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Subscribers_source ]){ 
+       if( (  (Stack[i]->name == Event_Client))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = client_variable_list.begin(); s != client_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) client_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source client_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = client_variable_list.size();
+  if(thread_length != client_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    client_variable= client_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int reg_variable; // thread variable
+  vector<int> reg_variable_list; // list of coordinated events
+  int uns_variable; // thread variable
+  vector<int> uns_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for reg_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      reg_variable = i; 
+      if( reg_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  client_variable ]){ 
+       if( (  (Stack[i]->name == Event_Register))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = reg_variable_list.begin(); s != reg_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) reg_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source reg_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = reg_variable_list.size();
+  if(thread_length != reg_variable_list.size()) throw failed;
+
+  // preparing thread for uns_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      uns_variable = i; 
+      if( uns_variable_list.size() == thread_length){
+         reg_variable = 0; } 
+      else{ 
+         reg_variable = reg_variable_list[uns_variable_list.size()];}; 
+      if(in_matrix[i * len +  client_variable ]){ 
+       if( (  (Stack[i]->name == Event_Unsubscribe))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = uns_variable_list.begin(); s != uns_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) uns_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source uns_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = uns_variable_list.size();
+  if(thread_length != uns_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    reg_variable= reg_variable_list[i];
+    uns_variable= uns_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  Publisher_source = Root_table[Event_Publisher]; // source of coordination
+ 
+
+  // create lists of coordinated events 
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  client_variable ]){ 
+       if( (  (Stack[i]->name == Event_Receive))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){
+         r_variable = 0; } 
+      else{ 
+         r_variable = r_variable_list[s_variable_list.size()];}; 
+      if(in_matrix[i * len +  Publisher_source ]){ 
+       if( (  (Stack[i]->name == Event_Send)) && ( Event_comparison_expr_51_52 
+(current_host, s_variable , reg_variable ) && Event_comparison_expr_53_54 
+(current_host, s_variable , uns_variable ) ) ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    r_variable= r_variable_list[i];
+    s_variable= s_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   if( ( special_function_69(current_host, s_variable ) > 1 )){ 
+   Mark = 'M'; // MARK
+    // ADD operation 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"this Send is received by ";
+     convert << special_function_72(current_host, s_variable ) ; 
+     convert <<" Clients";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    int temp_75 = Stack.size() - 1;
+    Follows.insert(pair<int, int>(s_variable,temp_75));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_86_87_ob class
+
+//---- 15 ---- 
+class Coordinate_45_46_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_45_46_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int r1_variable; // thread variable
+  vector<int> r1_variable_list; // list of coordinated events
+  int  Publisher_source = Root_table[Event_Publisher]; // source of coordination
+ 
+  int r2_variable; // thread variable
+  vector<int> r2_variable_list; // list of coordinated events
+  int  Subscribers_source = Root_table[Event_Subscribers]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for r1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r1_variable = i; 
+      if( r1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Publisher_source ]){ 
+       if( (  (Stack[i]->name == Event_Register))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r1_variable_list.begin(); s != r1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r1_variable_list.size();
+  if(thread_length != r1_variable_list.size()) throw failed;
+
+  // preparing thread for r2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r2_variable = i; 
+      if( r2_variable_list.size() == thread_length){
+         r1_variable = 0; } 
+      else{ 
+         r1_variable = r1_variable_list[r2_variable_list.size()];}; 
+      if(in_matrix[i * len +  Subscribers_source ]){ 
+       if( (  (Stack[i]->name == Event_Register))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r2_variable_list.begin(); s != r2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r2_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( r2_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far r2_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r2_variable_list.size();
+  if(thread_length != r2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    r1_variable= r1_variable_list[i];
+    r2_variable= r2_variable_list[i];
+    // SHARE_clause , throws failed exception if cannot complete 
+    make_equality_complete( r1_variable , r2_variable ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_45_46_ob class
+
+//---- 16 ---- 
+class Coordinate_49_50_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_49_50_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int u1_variable; // thread variable
+  vector<int> u1_variable_list; // list of coordinated events
+  int  Publisher_source = Root_table[Event_Publisher]; // source of coordination
+ 
+  int u2_variable; // thread variable
+  vector<int> u2_variable_list; // list of coordinated events
+  int  Subscribers_source = Root_table[Event_Subscribers]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for u1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      u1_variable = i; 
+      if( u1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Publisher_source ]){ 
+       if( (  (Stack[i]->name == Event_Unsubscribe))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = u1_variable_list.begin(); s != u1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) u1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source u1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = u1_variable_list.size();
+  if(thread_length != u1_variable_list.size()) throw failed;
+
+  // preparing thread for u2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      u2_variable = i; 
+      if( u2_variable_list.size() == thread_length){
+         u1_variable = 0; } 
+      else{ 
+         u1_variable = u1_variable_list[u2_variable_list.size()];}; 
+      if(in_matrix[i * len +  Subscribers_source ]){ 
+       if( (  (Stack[i]->name == Event_Unsubscribe))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = u2_variable_list.begin(); s != u2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) u2_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( u2_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far u2_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = u2_variable_list.size();
+  if(thread_length != u2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    u1_variable= u1_variable_list[i];
+    u2_variable= u2_variable_list[i];
+    // SHARE_clause , throws failed exception if cannot complete 
+    make_equality_complete( u1_variable , u2_variable ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_49_50_ob class
+
+//---- 17 ---- 
+class Itr_33_34 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_33_34 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_33_34 
+
+//---- 18 ---- 
+class Sq_35_36 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_35_36 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Register); 
+      element[ 1 ]=  new Itr_33_34 ; 
+      element[ 2 ]=  new Atomic_producer(Event_Unsubscribe); 
+    } 
+};// end class Sq_35_36 
+
+//---- 19 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Register); 
+      element[ 1 ]=  new Atomic_producer(Event_Unsubscribe); 
+      element[ 2 ]=  new Atomic_producer(Event_Send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 20 ---- 
+class Ct_88_89 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_88_89 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+    } 
+};// end class Ct_88_89 
+
+//---- 21 ---- 
+class Ct_90_91 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_90_91 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      element[ 2 ]=  new Alt_1_2 ; 
+    } 
+};// end class Ct_90_91 
+
+//---- 22 ---- 
+class Ct_92_93 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_92_93 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      element[ 2 ]=  new Alt_1_2 ; 
+      element[ 3 ]=  new Alt_1_2 ; 
+    } 
+};// end class Ct_92_93 
+
+//---- 23 ---- 
+class Ct_94_95 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_94_95 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      element[ 2 ]=  new Alt_1_2 ; 
+      element[ 3 ]=  new Alt_1_2 ; 
+      element[ 4 ]=  new Alt_1_2 ; 
+    } 
+};// end class Ct_94_95 
+
+//---- 24 ---- 
+class Itp_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Ct_88_89 ; 
+      element[ 1 ]=  new Ct_90_91 ; 
+      element[ 2 ]=  new Ct_92_93 ; 
+      element[ 3 ]=  new Ct_94_95 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itp_3_4 
+
+//---- 25 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Register); 
+      element[ 1 ]=  new Itp_3_4 ; 
+    } 
+};// end class Sq_5_6 
+
+//---- 26 ---- 
+class Comp_37_38 : public Composite_producer { 
+public: // constructor 
+    Comp_37_38 (): Composite_producer(Event_Client){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+    } 
+};// end class Comp_37_38 
+
+//---- 27 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_Publisher){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+      element[ 1 ]=  new SIMPLE_LIST_29_30_ob(Event_SIMPLE_LIST_29_30); 
+    } 
+};// end class Comp_31_32 
+
+//---- 28 ---- 
+class Comp_41_42 : public Composite_producer { 
+public: // constructor 
+    Comp_41_42 (): Composite_producer(Event_Subscribers){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Client); 
+    } 
+};// end class Comp_41_42 
+
+//---- 29 ---- 
+class SCHEMA_Publish_Subscribe: public Composite_producer {
+public: // constructor 
+    SCHEMA_Publish_Subscribe(): Composite_producer(Event_Publish_Subscribe){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[0]= new Composite_secondary_producer(Event_Publisher);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Subscribers);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Coordinate_45_46_ob(Event_Coordinate_45_46);
+      element[3]= new Coordinate_49_50_ob(Event_Coordinate_49_50);
+      element[4]= new SIMPLE_LIST_86_87_ob(Event_SIMPLE_LIST_86_87);
+    } 
+};// end class SCHEMA_Publish_Subscribe
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example11_Publish_Subscribe.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_37_38 temp_30; temp_30.harvest();
+   // harvesting traces for ROOT events 
+    Comp_31_32 temp_31; temp_31.harvest();
+    Comp_41_42 temp_32; temp_32.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Publish_Subscribe temp_33; temp_33.harvest();
+   temp_33.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Publish_Subscribe"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.mp
new file mode 100644
index 0000000..b885a2e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.mp
@@ -0,0 +1,89 @@
+/* Example 11 Publish/Subscribe architecture model.
+
+	Publisher sends a notification to all active Subscribers 
+    when new information is available. 
+    
+	 scope 1, 1 trace in less than 1 sec.
+	 scope 2, 51 traces in less than 1 sec.
+	 scope 3  3813 traces in approx. 5 min.
+*/
+
+SCHEMA Publish_Subscribe
+
+ROOT Publisher: 	Register
+					(+ 	 <2 .. 3 + $$scope * 2> ( Register | Unsubscribe | Send )  +) 
+/* 	Iteration_scope <2 .. 3 + $$scope * 2> is needed to provide enough events for 
+	coordination, since each Client has Register/Unsubscribe event pair, 
+    plus some Receive events  */
+
+BUILD{
+    /* The Register and Unsubscribe events should be balanced  */
+    ENSURE #Register == #Unsubscribe;
+
+    ENSURE FOREACH $u: Unsubscribe 	#Register BEFORE $u > #Unsubscribe BEFORE $u;
+    
+	/* 	Publisher will Send only if there is at least one active Client.
+    	This condition is specified with ENSURE. */
+
+	ENSURE FOREACH $s: Send 	#Register BEFORE $s > #Unsubscribe BEFORE $s;    
+    };
+
+Client: Register (* Receive *) Unsubscribe;
+
+ROOT Subscribers: {+ Client +};
+
+/****** Coordination between Publisher and Subscribers ******/
+/* The ordering of composition operations is important, since Register and 
+	Unsubscribe events are used to coordinate Send/Receive between  
+    Publisher and Client. 
+    
+    First, we do SHARE ALL for Register events,
+    next will try all valid permutations of Register/Unsubscribe,
+    and then proceed with further coordination of Send/Receive,
+    using the shared Register and Unsubscribe events as pivots 
+    to coordinate Send events for each Client */
+
+	/* Need to try all possible permutations of Register/Unsubscribe pairs, 
+        hence the use of <!> event reshuffling */
+COORDINATE 		$r1: Register FROM Publisher,
+			<!> $r2: Register FROM Subscribers
+	DO 	SHARE $r1 $r2; OD;
+
+COORDINATE 		$u1: Unsubscribe FROM Publisher,
+			<!> $u2: Unsubscribe FROM Subscribers
+	DO 	SHARE $u1 $u2; OD;
+
+/* the following coordination is performed 
+	for each valid permutation of Register/Unsubscribe */
+COORDINATE $client: Client FROM Subscribers
+	DO COORDINATE 	$reg: Register 		FROM $client,
+					$uns: Unsubscribe 	FROM $client
+
+		/* For Send event selection to coordinate with a particular 
+        	Client event, the SUCH THAT thread condition is used.
+            Client will Receive all and only Send between his Register and Unsubscribe */
+		DO COORDINATE 	$r: Receive FROM $client,
+						$s: Send 	FROM Publisher
+							SUCH THAT $s AFTER $reg AND $s BEFORE $uns
+
+            /* Register and Unsubscribe events have been shared and now can be used
+                to select appropriate Receive events from the Client and 
+                Send events from the Publisher for coordination */
+
+			DO ADD $s PRECEDES $r; OD;
+		OD;
+	OD;
+
+/**** A query  ******/
+/* It might be interesting to find out whether there are 
+	Send events received by several Clients.
+	MARK traces containing such event configuration, and place 
+    annotation pointing to the Send event of interest*/
+COORDINATE  $s: Send 
+DO
+	IF (#Receive FOLLOWS $s > 1) THEN 
+		MARK;
+		ADD SAY("this Send is received by " #Receive FOLLOWS $s " Clients")
+			PRECEDES $s;
+	FI;
+OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp.txt
new file mode 100644
index 0000000..a7efcec
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example11_Publish_Subscribe tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.tree
new file mode 100644
index 0000000000000000000000000000000000000000..353c03265123fd31d0e4d8a367e271b81dd1687a
GIT binary patch
literal 14848
zcmd^Fe~eVub$;y5yq%d{^UIjv#dR>D)TJ)jnVp@PB?PnVE(U^u>|){&?8ofxTXyg;
zGt3VRu0x3HI)plo<vNk&805N$B3dEWvM6<3%cZX6S`<;saY<xZ2)W3ztQ1+66(Q^0
ze&^o%e%!fl*BkYpO1-PuGw;3ce&^hC&OP_OH}6+745Jl)a}3cO2$nDm2j^J_WDDec
zd=?mnY3y%xS`7o2qEU%wi*fA^d@}f~#%BXQ=tnJv53oiAe@+DFw}KBH*)~WM@?OX`
z$Ps*sWXBASr@lj*H*aP8=$qa&+<qNHXIhOG{E6nk81|51JXo$iKr+}g+`|$F8EhKv
zpu|B28~MhGlfNM0OQl~s>^Ow;@DV!_?4^$1xdGRoR<FB9+@CXX{TO&=L7s%14fzrz
z0?A&*=S|W-KjJ{2X>3c7K5oxkDQ}c=9_gh&(VUym_ab;G=I=mK9=t2AO^W+K;x12u
z`&jaQB5}X*aYzf^oUcI7Z*d)YMsnCLjge&6L;M$+A^bO!vdeG5yx{&@pk8;8I6K3=
z!WO&V+^f(D|54+9z8S|$psy2hIpjjf9ONyKYi1a1;|%yUyO;8n`}g;F&bPRE$F>2p
zQ`O=6ljCpYc;BAgDwgbEm+3#n>vF~Us*KyBrhfI1e$vmTG0};shw;Gf+rS6EPSqxj
zvzreGg)YK*@eAgSn-7OE_NQj(`PG~c&j~*659GZvUy!ft1nfq>vKQ4cDmbb`uK<U9
zW^Xj(T6ry^F*{$w^$Wl)fxHCy`;b>)=O<)mpk6G+`Ok6v4<NlNBD@yCv2#1lCm{b2
za-JJ))vG~2)(=!{HowIv<@eZZL5nd`9y`D~ML$I^)u|;dqE0~uThQN}Z>i+FUGgn!
zF<81q@wcLPmBg(Uyzr8rryJ0>IZtJrf%Efot7;S3#}H>~JinIV_<kM30rH>1H=$#h
z%!lB3oj(F^Rr&?>yI82zSsgYX6yx>sFo;9_=D5SaJ*E1E^F8PLnd6QLTY_;@a0eyd
zNgqc!ORZdieJ>#&?tpw5@{b|UK<`<hHxzd+fO}&K+y#ld2)=h(L|s}A{`YbI>yTF=
zyCAPYCLyl_7ZIay*J&q(^D|pTUd?V5`8T)KV7G+emP*|161NPvG~ojCqZ@pyS`8-+
zxz1fZgfC3P`kvE6b?WIKIM^5Pd7W*li$mbtq4sm<1II6>e#b94IoZEgtqVM_$6LjG
znoxOo9<G30yVdi;I{!b{^9^oStBYiH*mV$}!|oaI$oUe?3uRup^Z6;!C+H`RdoJ8g
zZM{0?>-4Qu*JnkqJD;By{Y>M&XK0_J%&${AC(Rpb+)pbpzL#}OP`|==M#nPDFNN=Q
z9TVg;ji3CLwA1(dIr#iMKJWQ`nVgT%@7Jlzz<lguh?mLv7&Vss$JcPo<BBh)kvzY4
zX!G3>WUli~;67_L#;fH$44YW)$Cz6+gmt_h)&&orhzR_=$mDpeAISGMXH}rzt+L<k
z;r%F&NEbDwZlthJrn-@iU_VV(OoCf2ach7Zm;$#+;<f-cGzD&l#N7|vPTKWg-MbTZ
z>{k6FEcXAK#>zHlwe<H=k*97CKCXJi$X9nIX?=xEQN3dOh`&Yn^APm*LC+&@FQ1#f
zna01xJbtXh<PR6g`5%}3sDGRv^^ZLf!vBohOXVj%w?1;d7bM?tE>r9@{Bc(JO~IX$
zxHly30&tfI=hsJ`Uv7Q6qUsNhgX2Doh&pyPBI@!-;QKU!@o#_1SwnspPtblg$nW&S
zZ(qQF1CZFO2U`%Q*g-d8fu`93Z}9y|OH|kqiDJ!&DtZ;Z1+G^FsWMNgzIUqEnXHed
z@h=O+KK5q|XkUtcejT9ty99cJ_4j!(-^pHg-tcvKdDOd~a|YpuF7#Uw#a{19A2@-Y
z1dn|I#}5F%NyWP!;{5kY{_Ro2SquIhz>kwZ{5(`}6^X;XkyWR_JuGp^7j`fN=Z@<z
za5SzX(EIchxMLFcJaDI?YW;s%jR8f9>L9h?`ZHSIQ(<RxEa6P!pWkurYFby$>R5()
zNloK@MaL2jG4l77uj&|vI!Z0bw=Z8c*lRkLaFiPk_C<J3q1NNqqoR(#9i6<6V;^N2
z{}of}_`9;-2UGOJzRNTmwckgw-=|ab!#>S4Hg`Jf0_(;XvY%;&+8NAeW!;z!3uxV#
zYvNwS#4IkfVL9S;oX^)=-C09k(wk}gaO+69TvXz*Nblp;>8SDFvEPMX;awKOE9)~X
zzsXr267RI$heo00MJ62Qtv5MS)Qc72IMevbO%#8PcV#$U!>tO(Y5G@(<4j|5gr0+#
z#**{S29n6<Z;?HIz2Wg(V~RRGV2V1u7IEKV@_0M6@7*5G??ygmy!M||A5G&Q;zHje
zfA4IR`tBxuldNN7DzCTC9#_x1dR%E57vuC?M;k{)j>BE|su;(^=HxhcU3v_-Cr#LY
z?d#4a)m~>a#{Vql!xqTns$H}~^ZV}8xc+TiKMNVM{|%1c83OJV;D#aJn1t_w<hvyK
zUKjP%AOA1@di`4IUo3b*Kk#|{Yg6o#@LYoLWAI#py)WZ=5A<GD^}4*Sq^r(0G2b1+
zUz-O0I|2OlY2fcAyZz_0&Uc|Ff`_*ujq-x~d1m-^w+pv>dlT>Xz`G#4pU1m6{JPJ3
z)D(H`KL0#rQvL;=hqj69@Y{~2b?6SAn_>N+792lchnDMD!YTExOUE#*E7UZ;l#V5w
z!k5-D4C@UwjW45P38(PobPU5fL`~ycp<@Zh<B0nO)0n+bS<hCsiFJ2vTj+X*`_*n*
zcW6GiGsd|O@!!%W?$?GO@5k{Dp;yC=OWcISRRxaQgFNEWBKfPOq=z5lxrK6lr#!}U
z4Ac1Rgp-%YBiv8^zVzWXgFS}NlfDla>Mk{22S;J&v;H-Hq3NGeSNefJ4!Z{+PpJJ&
z<6q<SoL0l1l=!CozG*z!MRp^u5qJN}PQlif@p%oOw*)^!eWm8v`;Mx&$z0;|@4Mdz
z5AFwojiC-x^Z2e#%@?eDJkHl-{63ZO`vN-57|#Y*6UWVtiF}v~N%?R~%wS7nY94pt
z!ADbLsPoi_YvpaLIIrs;&bvbLu9UoM!Mi0y|8|MnA#vltRhsla6rvyNLQsFyIAMMh
z&mqWP)7h87|Nj2?(GY&QE-1JsLU3|DP;k$L;N&`>#pwk({^N4|r!oGsP2)co!YAv$
z#&=%wU66d2z;~sI?~@QdS@%t&*e2?^sNbgXe$1=qeBOT=^RDybyE<t;Q8XMJD}MMq
zM9)f*$6EdSt&XMma^B{3<hqV!sAtrIy!^iF3mr?iP<!dYSyN-Ef7GVS8>}nJ{k(x6
zEdy;*T+1|Z5ful&`}Nd}W3G#jtJ1BXF{2ovCyF#un!7RM=o!KU>p!<U78m>AL|p7Q
zI)uJSaq}f^!I$6`OWcw#!7Z1#E`h`N{QA2BV+(x9ekSW}Fiw0ND@A|81RMDL`nw8z
z_yil1^_J%e_Pt78uU4_tkD<;|3+m_jw?@Yjj@R`u^cx7jP8e!jKla;-{<V4^hWbrS
z)4xu~5|01QM*26z4abJu7>*0ZTlu|aQ(XN1vqkjdc49xT*tuQjWLOWVX?E_=v4s1b
z{Dk`mMgRReC&M~JP1C<q#}dx-(}?ubSU7G{KaER2O^ANMdC&b>jf?x{y2?8#Zr?O<
z`&Ar|5AG`z|2(8(XuJ&T5H-y|59?UMO*cN1`sbkZ&mqCj?QC90j_A4>);DUJosa8S
z!u_x9d_vm!q-$qvVQ}3ujdgO}+_7=%y7j}R@yi&!XJHzT%I6M0jfi#gXoSuuV3RXW
z^ZUYAz2EV6@%Z?4=~>hze1eV1I?Vkv!SR0Gm-t{GChIZB7dYOpqXE3zhsnCk@w++R
ze;=s{PkorI&wM-&(0JZn>=X@yAMc^#8)u3A!)>#~`!e4ja7uLkK6(CuS@iylyN?u6
zrR(rdnd|rWX~$JxkYAWre}-oZ|BlTTdXCED)3Yb#uQc(W4&j&c)-;ZuboNTSs#4aZ
ztds1SOTQzSM&DfTeV|4Y|Je|JFYo{EW|1#<+$iz~<KNfR|6E9anU6HT-2FFS_nMz$
zoky(RivvY}qVf83IWC@$T;VdsJ`_48#a)%Sk9?e~m-D&L*FQ$R97KFRf!@!BUIm8?
z;qQyJB*gRoNCLlyB&a_5`5bm%h;dNk^LZNgg{JZE=bQ&+oUo4byuy0QCDto0v2Jj=
zpX!PKe9poBEn5Klc0w+ujP@Jp=g(p8P|y1a@y#@T@r3t$>HzWkapKRXG6~^-yjQ@V
zPvzi;H3>03yo<p$PR$?W<M&<LU@!e1doLv2&y9eum{9a`+&+ohFL93m_c-^zKi__?
z>t=GiQDb{29_MmiH=p=;o(CVjr}08U+=m?(9ON&amtXR{Tv?w^gy@(4;PFCy6#R=J
zc=&-@aGl`KmtNAbgq!X<!S(NK(*Lr~$>3jVn*K97mT=S6ugy>QeVelhu`hc?@SDb8
z{@D2w+UM`+gs+h2eMg+T)VL}8x;JG1H{Jd}n(N*FVgFzn=jVF&fBYDA3cvX&ak!|D
zjd}I}|9y`4*STLK_dZnnFsWb3Z+id8tuMbpo>6_dhQ8M+zXS7@aFKRVU(9xLtJgHY
z#o7($An*x^pC|A<zCR#81$YkuHy?QHPuL=r*Q*E1)bpNV`NcH;qVw*)p>J{iACf=+
zsn$0zp!zSZbC7-1c)v$P{JeU4AM9BLyJ+68hNOAFp&jo8x5Iw_cX&SU@0Ylp61N+;
zdb_IsV2FM>E+rm+3O$Fx^C;v~kbegG9Qcm43p)=r<;BSmUf4@bn;)liEa9d*Ke(To
z_mO|Ab29jWT2Mc~Z#%7H3CHgT9>X|a#CXRb2lO>r@R6rPQ|8wz?P7kus_W%->CJGx
zLHjuFt#F)aq!&6rl72c2``!-6Nz)Lg@p;}pme1$EnJ4xkXXZKR8jLru@9(yY^$PE&
z@%0Mtr?K~Bynoyj@5{PwCdbX=b42EIbDTa7=_kh#HQt)Jbg390Ur#>MvF_MNlKn~?
z-1+{wobLuUpJ=FGem!dGz&qY5FOxQz#y`%|e$VX?9Gpo0W8kO8$NA?WcFgY(^=Uze
z$cIkBq1a3FYe|QgU&|qBe&qztG`{iDaNl<Y|Kr?#f8VqM_T&8`w$itYdHnwGOgxWP
z`50+B7h1lp4#%0s2lFZ4qUh!PM9L@pxbpEI@|piX#s8-mwpkmUu=nI+cCl{Jd$7^k
zXt`p~+0q!n(S$YJ7^#g`3nO--P^vWQ)_9?4x0f4r_j|NjF4t=bsz~Kpp>Ega)(U$n
zMcc}c)(hnlr@VD=f1b`Ila@xid{1TJ6qn<&gI#U+EUDJa{$jx{)o;kx%X<o=mc0)L
zwV5URL5r-h>iLnP%@2LEW_e$&a&^qE&h9Tm7E1ZLZKZpxbVfPRYxQ)^8D4+)mW_kf
z#`VKntz5>+W#iQb21b)QPIm?ty)G3SvUkC2u<xEy&GpsHQJ=hAsm)Pc!p~If(L%mx
zjW<f%Pqle_8~IYbFkZ07EPH>Y${m;Jhg+@gq}81gU(-n|or-%yk=L_Ucdl*79<>Ym
zY{lwSuhrc(x7MV~%Ic?bH)^P4_f6k!vMJePB{SODRJWB%cMehzEHW)$Ez}TsZxrpj
zisca+YcaoT&S<_^#1Oq9)Z)mtYMye%tlG6kv7RX9_Z4>WGa*K$^>e9Y$hnk$F4LRv
zoLpTPZf{T0>Pby@t=sBJN5}KUnjNdzdmDCX)Ha9rT0K@~PR*`c$bJl@T(v62My+Gm
zuCK2nc)eD-YnHe~^MTK<7<zU0SlyYM^R)w|(TQrgRBqI)TDegjwc(pasSd`XEv8T<
zUk7u^Tr;?K^U$C^u57A}F7)-Ui=kkONn9!B3#ImA`9ZsCjeu{gy-|Um<#(xwraO|U
zG*;m5FE#dz*i~?C+_?EW!_mIATL*`3PzKe;M`WdA?%DYIde!Rgwz|`a{>__*2G(!t
z+d9}@O<FLdK(nyDn)1Hii1<!4#>b0=(k`ol10+m)BY<uASj<Lg780k|N_NF<xSfw}
zPViDPYbA5anN*LJQYLdIYh`k?MtQ~XYzfZxT-wU@Bx>HZM8o?^4&~!8h08js_Ac*Y
zN2BC-YR?xbNJ!g#c3U56Y0^r~u2hluBZXq2et?@k%Z+y7A)enIG7yE*n7u!C4{yJ`
zGuB_Xaycv4OJ91stllL5lCpZc`IofS+asSsUA!}D@2S)e$ivHbwhh?hc}yau45YiQ
zbXq-=wbD6rXmG<||JDv6EL7)Y$~)+_QeEyrDr=>3O8*RUKBJt;rL0_c$MCwop+Rf3
zm~YhVpo=rzRwk{4Dc5D?lJWY4EtZHF(y&%X1yo2gNh_05&SY~|w)cjrUF81bP7Uhm
z>9sOliK-W(1l`G4*)A)ajN>N8%4V!=HacFY*6L=>rqqwQT=80Cbi%4n<m<65LxcT;
z1B1h{T3*CWF`*}G_2k;>@Vk}m;jBG9R!=65&5o7rwzBD)>l20ABHE)af~<<VJho`$
Qz@pe9v2fM?kHr6f0L^J`cK`qY

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.txt
new file mode 100644
index 0000000..50f5c1e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example11_Publish_Subscribe.txt
@@ -0,0 +1,14 @@
+generating traces for scope 1 
+completed Client: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Publisher: 	25 traces (0 MARKed) 	160 events 
+		average 6.4 ev/trace 	min 4 	max 7
+
+completed Subscribers: 	2 traces (0 MARKed) 	9 events 
+		average 4.5 ev/trace 	min 4 	max 5
+
+completed Publish_Subscribe: 	1 traces (0 MARKed) 	10 events 
+
+Elapsed time 0.006075 sec, Speed: 30617.3 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.cpp
new file mode 100644
index 0000000..b1de57f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.cpp
@@ -0,0 +1,627 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA ring trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list left_neighbor_of_UDR_set;
+       pair_list right_neighbor_of_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    left_neighbor_of_UDR_set.clear();
+    right_neighbor_of_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!left_neighbor_of_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("left_neighbor_of",left_neighbor_of_UDR_set));
+  if(!right_neighbor_of_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("right_neighbor_of",right_neighbor_of_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "left_neighbor_of"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         left_neighbor_of_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+    else 
+    if(p1->first == "right_neighbor_of"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         right_neighbor_of_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  left_neighbor_of_UDR_set 
+  temp_list.clear(); 
+   for(p = left_neighbor_of_UDR_set.begin(); p != left_neighbor_of_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   left_neighbor_of_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  right_neighbor_of_UDR_set 
+  temp_list.clear(); 
+   for(p = right_neighbor_of_UDR_set.begin(); p != right_neighbor_of_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   right_neighbor_of_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from left_neighbor_of_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = left_neighbor_of_UDR_set.begin(); p != left_neighbor_of_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  left_neighbor_of_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // merging from right_neighbor_of_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = right_neighbor_of_UDR_set.begin(); p != right_neighbor_of_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  right_neighbor_of_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send_left
+    , Event_send_right
+    , Event_receive_from_left
+    , Event_receive_from_right
+       // composite events 
+    , Event_Node
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_37_38
+       // ADD operations 
+       // ROOT events 
+    , Event_Ring
+       // main schema event 
+    , Event_ring }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send_left"
+     , "send_right"
+     , "receive_from_left"
+     , "receive_from_right"
+     , "Node"
+     , "SIMPLE_LIST_37_38"
+     , "Ring"
+     , "ring" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_37_38_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_37_38_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x1_variable; // thread variable
+  vector<int> x1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int x2_variable; // thread variable
+  vector<int> x2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for x1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x1_variable = i; 
+      if( x1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Node))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x1_variable_list.begin(); s != x1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x1_variable_list.size();
+  if(thread_length != x1_variable_list.size()) throw failed;
+
+  // preparing thread for x2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x2_variable = i; 
+      if( x2_variable_list.size() == thread_length){
+         x1_variable = 0; } 
+      else{ 
+         x1_variable = x1_variable_list[x2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Node))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x2_variable_list.begin(); s != x2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x2_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SHIFT_LEFT reshuffling 
+  if(x2_variable_list.size() > 0) 
+    rotate(x2_variable_list.begin(), x2_variable_list.begin() + 1, x2_variable_list.end());
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x2_variable_list.size();
+  if(thread_length != x2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x1_variable= x1_variable_list[i];
+    x2_variable= x2_variable_list[i];
+    // ADD operation 
+    left_neighbor_of_UDR_set.insert(pair<int, int>(x1_variable,x2_variable));
+    right_neighbor_of_UDR_set.insert(pair<int, int>(x2_variable,x1_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int m_variable; // thread variable
+  vector<int> m_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for m_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      m_variable = i; 
+      if( m_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Node))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = m_variable_list.begin(); s != m_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) m_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source m_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = m_variable_list.size();
+  if(thread_length != m_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    m_variable= m_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int left_variable; // thread variable
+  vector<int> left_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for left_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      left_variable = i; 
+      if( left_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Node)) && 
+ find_pair_in_table( left_variable , m_variable , left_neighbor_of_UDR_set) ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = left_variable_list.begin(); s != left_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) left_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source left_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = left_variable_list.size();
+  if(thread_length != left_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    left_variable= left_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s1_variable; // thread variable
+  vector<int> s1_variable_list; // list of coordinated events
+  int r1_variable; // thread variable
+  vector<int> r1_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s1_variable = i; 
+      if( s1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  m_variable ]){ 
+       if( (  (Stack[i]->name == Event_send_left))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s1_variable_list.begin(); s != s1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s1_variable_list.size();
+  if(thread_length != s1_variable_list.size()) throw failed;
+
+  // preparing thread for r1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r1_variable = i; 
+      if( r1_variable_list.size() == thread_length){
+         s1_variable = 0; } 
+      else{ 
+         s1_variable = s1_variable_list[r1_variable_list.size()];}; 
+      if(in_matrix[i * len +  left_variable ]){ 
+       if( (  (Stack[i]->name == Event_receive_from_right))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r1_variable_list.begin(); s != r1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r1_variable_list.size();
+  if(thread_length != r1_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s1_variable= s1_variable_list[i];
+    r1_variable= r1_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r1_variable,s1_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s1_variable; // thread variable
+  vector<int> s1_variable_list; // list of coordinated events
+  int r1_variable; // thread variable
+  vector<int> r1_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s1_variable = i; 
+      if( s1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  left_variable ]){ 
+       if( (  (Stack[i]->name == Event_send_right))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s1_variable_list.begin(); s != s1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s1_variable_list.size();
+  if(thread_length != s1_variable_list.size()) throw failed;
+
+  // preparing thread for r1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r1_variable = i; 
+      if( r1_variable_list.size() == thread_length){
+         s1_variable = 0; } 
+      else{ 
+         s1_variable = s1_variable_list[r1_variable_list.size()];}; 
+      if(in_matrix[i * len +  m_variable ]){ 
+       if( (  (Stack[i]->name == Event_receive_from_left))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r1_variable_list.begin(); s != r1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r1_variable_list.size();
+  if(thread_length != r1_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s1_variable= s1_variable_list[i];
+    r1_variable= r1_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r1_variable,s1_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_37_38_ob class
+
+//---- 2 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_left); 
+      element[ 1 ]=  new Atomic_producer(Event_send_right); 
+      element[ 2 ]=  new Atomic_producer(Event_receive_from_left); 
+      element[ 3 ]=  new Atomic_producer(Event_receive_from_right); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 3 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 4 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Node){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 5 ---- 
+class Comp_39_40 : public Composite_producer { 
+public: // constructor 
+    Comp_39_40 (): Composite_producer(Event_Ring){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Node); 
+      element[ 1 ]=  new SIMPLE_LIST_37_38_ob(Event_SIMPLE_LIST_37_38); 
+    } 
+};// end class Comp_39_40 
+
+//---- 6 ---- 
+class SCHEMA_ring: public Composite_producer {
+public: // constructor 
+    SCHEMA_ring(): Composite_producer(Event_ring){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[0]= new Composite_secondary_producer(Event_Ring);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+    } 
+};// end class SCHEMA_ring
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example12_network_topology_ring.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_5_6 temp_7; temp_7.harvest();
+   // harvesting traces for ROOT events 
+    Comp_39_40 temp_8; temp_8.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_ring temp_9; temp_9.harvest();
+   temp_9.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"ring"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.mp
new file mode 100644
index 0000000..d3dcba3
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.mp
@@ -0,0 +1,75 @@
+/* ring.mp
+    ring topology
+    an example of user-defined relation use
+
+    The following is a model of network ring, 
+    where each node interacts with its left and right neighbors only. 
+------------------------------------------*/
+
+SCHEMA ring
+/* model of networking ring, where each node sends/receives
+to/from its left and right neighbor.
+*/
+
+Node: (* (  send_left           | send_right            | 
+            receive_from_left   | receive_from_right    )   *);
+
+ROOT Ring: {+ Node +}
+
+/*  The following coordinations are done over the root Ring,
+    the ring may contain one or more Nodes */
+BUILD{
+
+COORDINATE              $x1: Node,/* This thread produces a default set */
+<SHIFT_LEFT> $x2: Node 
+
+/* SHIFT_LEFT reshuffling, means that when the default set 
+of Node events is selected (all Node events from THIS),
+it takes the first event from the
+beginning and puts it to the end of sequence.
+This adjusted thread is used to produce the ring topology */
+
+DO
+/*  The COORDINATE loop proceeds to set up new relations between $x1 and its neighbor */
+    ADD $x1 left_neighbor_of    $x2,
+        $x2 right_neighbor_of   $x1;
+OD;
+
+/*-----------------------------------------------------
+We assert the single ring property.
+^R yields a transitive closure of the relation R.
+Ring topology means that every node can be reached from any node in both directions.
+Although it is possible to prove that the previous coordination sets the ring properly,
+the following assertion check is provided for clarity to demonstrate how such 
+properties can be expressed in MP. 
+If uncommented, it will increase the trace generation time.
+Assertions are mostly used for model testing/debugging.
+You can uncomment it and try to run.
+--------------------------------------------------------*/
+
+/*----------------------------------------------------
+CHECK FOREACH $a: Node, $b: Node
+(   $a  ^left_neighbor_of    $b     AND
+    $a  ^right_neighbor_of   $b        ) 
+ONFAIL SAY("ring property violation detected!");
+-----------------------------------------------------*/
+
+/*  After the ring topology has been created, 
+we can coordinate message exchange between neighbors, 
+i.e. define the behavior of the ring */
+
+COORDINATE  $m: Node    /* Default set, do the following for each Node */
+
+DO  COORDINATE   $left:  Node SUCH THAT $left  left_neighbor_of  $m
+
+    DO
+        COORDINATE  $s1: send_left          FROM $m,
+                    $r1: receive_from_right FROM $left
+            DO ADD $s1 PRECEDES $r1; OD;
+
+        COORDINATE  $s1: send_right        FROM $left,
+                    $r1: receive_from_left FROM $m
+            DO ADD $s1 PRECEDES $r1; OD;
+    OD;
+OD;
+}; /* end of the BUILD block for the root Ring */
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp.txt
new file mode 100644
index 0000000..2088504
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example12_network_topology_ring tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.tree
new file mode 100644
index 0000000000000000000000000000000000000000..fd835226a8d77ab8f93bdb5cc7eaadfb808af85e
GIT binary patch
literal 8192
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
C>$+b6

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.txt
new file mode 100644
index 0000000..331b073
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example12_network_topology_ring.txt
@@ -0,0 +1,10 @@
+generating traces for scope 1 
+completed Node: 	5 traces (0 MARKed) 	9 events 
+		average 1.8 ev/trace 	min 1 	max 2
+
+completed Ring: 	1 traces (0 MARKed) 	2 events 
+
+completed ring: 	1 traces (0 MARKed) 	3 events 
+
+Elapsed time 0.000225 sec, Speed: 62222.2 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.cpp
new file mode 100644
index 0000000..9488183
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.cpp
@@ -0,0 +1,959 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA FiniteStateDiagram trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_a
+    , Event_b
+    , Event_Start
+    , Event_S1
+    , Event_S2
+    , Event_End
+    , Event_S3
+    , Event_S4
+       // composite events 
+    , Event_S1_to_S3
+    , Event_S1_to_S4
+    , Event_S2_to_S1
+    , Event_S3_to_S3
+    , Event_S3_to_S4
+    , Event_S4_to_S2
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_31_32
+    , Event_SIMPLE_LIST_49_50
+    , Event_SIMPLE_LIST_79_80
+       // ADD operations 
+       // ROOT events 
+    , Event_S1_behavior
+    , Event_S2_behavior
+    , Event_S3_behavior
+    , Event_S4_behavior
+       // main schema event 
+    , Event_FiniteStateDiagram }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "a"
+     , "b"
+     , "Start"
+     , "S1"
+     , "S2"
+     , "End"
+     , "S3"
+     , "S4"
+     , "S1_to_S3"
+     , "S1_to_S4"
+     , "S2_to_S1"
+     , "S3_to_S3"
+     , "S3_to_S4"
+     , "S4_to_S2"
+     , "SIMPLE_LIST_31_32"
+     , "SIMPLE_LIST_49_50"
+     , "SIMPLE_LIST_79_80"
+     , "S1_behavior"
+     , "S2_behavior"
+     , "S3_behavior"
+     , "S4_behavior"
+     , "FiniteStateDiagram" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_31_32_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_31_32_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S2_to_S1_list;
+
+  int S2_behavior_source = Root_table[Event_S2_behavior];
+   // lists of shared events for  S2_behavior 
+  vector<int> S2_behavior_S2_to_S1_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S2_to_S1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S2_to_S1_list.begin();
+          s != S1_behavior_S2_to_S1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S2_to_S1_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S2_behavior_source ]){ 
+     if( Stack[i]->name == Event_S2_to_S1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S2_behavior_S2_to_S1_list.begin();
+          s != S2_behavior_S2_to_S1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S2_behavior_S2_to_S1_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S2_behavior_S2_to_S1_list.size();
+     if(S1_behavior_S2_to_S1_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S2_behavior_S2_to_S1_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S1_behavior_S2_to_S1_list[i], S2_behavior_S2_to_S1_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_31_32_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_49_50_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_49_50_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S3_behavior_source = Root_table[Event_S3_behavior];
+   // lists of shared events for  S3_behavior 
+  vector<int> S3_behavior_S1_to_S3_list;
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S1_to_S3_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S3_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S3 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S3_behavior_S1_to_S3_list.begin();
+          s != S3_behavior_S1_to_S3_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S3_behavior_S1_to_S3_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S3 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S1_to_S3_list.begin();
+          s != S1_behavior_S1_to_S3_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S1_to_S3_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S1_behavior_S1_to_S3_list.size();
+     if(S3_behavior_S1_to_S3_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S1_behavior_S1_to_S3_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S3_behavior_S1_to_S3_list[i], S1_behavior_S1_to_S3_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_49_50_ob class
+
+//---- 3 ---- 
+class SIMPLE_LIST_79_80_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_79_80_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S1_to_S4_list;
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S1_to_S4_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S1_to_S4_list.begin();
+          s != S4_behavior_S1_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S1_to_S4_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S1_to_S4_list.begin();
+          s != S1_behavior_S1_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S1_to_S4_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S1_behavior_S1_to_S4_list.size();
+     if(S4_behavior_S1_to_S4_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S1_behavior_S1_to_S4_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S1_to_S4_list[i], S1_behavior_S1_to_S4_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S4_to_S2_list;
+
+  int S2_behavior_source = Root_table[Event_S2_behavior];
+   // lists of shared events for  S2_behavior 
+  vector<int> S2_behavior_S4_to_S2_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S4_to_S2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S4_to_S2_list.begin();
+          s != S4_behavior_S4_to_S2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S4_to_S2_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S2_behavior_source ]){ 
+     if( Stack[i]->name == Event_S4_to_S2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S2_behavior_S4_to_S2_list.begin();
+          s != S2_behavior_S4_to_S2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S2_behavior_S4_to_S2_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S2_behavior_S4_to_S2_list.size();
+     if(S4_behavior_S4_to_S2_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S2_behavior_S4_to_S2_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S4_to_S2_list[i], S2_behavior_S4_to_S2_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S3_to_S4_list;
+
+  int S3_behavior_source = Root_table[Event_S3_behavior];
+   // lists of shared events for  S3_behavior 
+  vector<int> S3_behavior_S3_to_S4_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S3_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S3_to_S4_list.begin();
+          s != S4_behavior_S3_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S3_to_S4_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S3_behavior_source ]){ 
+     if( Stack[i]->name == Event_S3_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S3_behavior_S3_to_S4_list.begin();
+          s != S3_behavior_S3_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S3_behavior_S3_to_S4_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S3_behavior_S3_to_S4_list.size();
+     if(S4_behavior_S3_to_S4_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S3_behavior_S3_to_S4_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S3_to_S4_list[i], S3_behavior_S3_to_S4_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"The path: ";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_S1)|| (Stack[i]->name == Event_S2)|| (Stack[i]->name == Event_S3)|| (Stack[i]->name == Event_S4)|| (Stack[i]->name == Event_a)|| (Stack[i]->name == Event_b)|| (Stack[i]->name == Event_Start)|| (Stack[i]->name == Event_End)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(a_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ a_variable ]->name]; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_79_80_ob class
+
+//---- 4 ---- 
+class Alt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+      element[ 1 ]=  new Atomic_producer(Event_b); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_3_4 
+
+//---- 5 ---- 
+class Alt_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_7_8 
+
+//---- 6 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_7_8 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S2_to_S1); 
+      element[ 2 ]=  new Atomic_producer(Event_S1); 
+    } 
+};// end class Sq_9_10 
+
+//---- 7 ---- 
+class Itr_11_12 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_11_12 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_9_10 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_11_12 
+
+//---- 8 ---- 
+class Alt_13_14 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_13_14 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_13_14 
+
+//---- 9 ---- 
+class Sq_15_16 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_15_16 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Start); 
+      element[ 1 ]=  new Atomic_producer(Event_S1); 
+      element[ 2 ]=  new Itr_11_12 ; 
+      element[ 3 ]=  new Alt_13_14 ; 
+    } 
+};// end class Sq_15_16 
+
+//---- 10 ---- 
+class Sq_21_22 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_21_22 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+      element[ 1 ]=  new Atomic_producer(Event_S2); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_S2_to_S1); 
+    } 
+};// end class Sq_21_22 
+
+//---- 11 ---- 
+class Itr_23_24 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_23_24 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_23_24 
+
+//---- 12 ---- 
+class Sq_25_26 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_25_26 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Itr_23_24 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+      element[ 2 ]=  new Atomic_producer(Event_S2); 
+      element[ 3 ]=  new Atomic_producer(Event_End); 
+    } 
+};// end class Sq_25_26 
+
+//---- 13 ---- 
+class Sq_37_38 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_37_38 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S3_to_S3); 
+      element[ 1 ]=  new Atomic_producer(Event_S3); 
+    } 
+};// end class Sq_37_38 
+
+//---- 14 ---- 
+class Itr_39_40 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_39_40 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_37_38 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_39_40 
+
+//---- 15 ---- 
+class Sq_41_42 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_41_42 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Atomic_producer(Event_S3); 
+      element[ 2 ]=  new Itr_39_40 ; 
+      element[ 3 ]=  new Composite_secondary_producer(Event_S3_to_S4); 
+    } 
+};// end class Sq_41_42 
+
+//---- 16 ---- 
+class Itr_43_44 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_43_44 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_41_42 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_43_44 
+
+//---- 17 ---- 
+class Alt_53_54 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_53_54 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S3_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_53_54 
+
+//---- 18 ---- 
+class Sq_55_56 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_55_56 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_53_54 ; 
+      element[ 1 ]=  new Atomic_producer(Event_S4); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+    } 
+};// end class Sq_55_56 
+
+//---- 19 ---- 
+class Itr_57_58 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_57_58 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_55_56 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_57_58 
+
+//---- 20 ---- 
+class Comp_1_2 : public Composite_producer { 
+public: // constructor 
+    Comp_1_2 (): Composite_producer(Event_S1_to_S3){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_1_2 
+
+//---- 21 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_S1_to_S4){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 22 ---- 
+class Comp_19_20 : public Composite_producer { 
+public: // constructor 
+    Comp_19_20 (): Composite_producer(Event_S2_to_S1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_b); 
+    } 
+};// end class Comp_19_20 
+
+//---- 23 ---- 
+class Comp_33_34 : public Composite_producer { 
+public: // constructor 
+    Comp_33_34 (): Composite_producer(Event_S3_to_S3){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_33_34 
+
+//---- 24 ---- 
+class Comp_35_36 : public Composite_producer { 
+public: // constructor 
+    Comp_35_36 (): Composite_producer(Event_S3_to_S4){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_b); 
+    } 
+};// end class Comp_35_36 
+
+//---- 25 ---- 
+class Comp_51_52 : public Composite_producer { 
+public: // constructor 
+    Comp_51_52 (): Composite_producer(Event_S4_to_S2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_51_52 
+
+//---- 26 ---- 
+class Comp_17_18 : public Composite_producer { 
+public: // constructor 
+    Comp_17_18 (): Composite_producer(Event_S1_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_15_16 ; 
+    } 
+};// end class Comp_17_18 
+
+//---- 27 ---- 
+class Comp_27_28 : public Composite_producer { 
+public: // constructor 
+    Comp_27_28 (): Composite_producer(Event_S2_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_25_26 ; 
+    } 
+};// end class Comp_27_28 
+
+//---- 28 ---- 
+class Comp_45_46 : public Composite_producer { 
+public: // constructor 
+    Comp_45_46 (): Composite_producer(Event_S3_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_43_44 ; 
+    } 
+};// end class Comp_45_46 
+
+//---- 29 ---- 
+class Comp_59_60 : public Composite_producer { 
+public: // constructor 
+    Comp_59_60 (): Composite_producer(Event_S4_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_57_58 ; 
+    } 
+};// end class Comp_59_60 
+
+//---- 30 ---- 
+class SCHEMA_FiniteStateDiagram: public Composite_producer {
+public: // constructor 
+    SCHEMA_FiniteStateDiagram(): Composite_producer(Event_FiniteStateDiagram){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_S1_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_S2_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_31_32_ob(Event_SIMPLE_LIST_31_32);
+      element[3]= new Composite_secondary_producer(Event_S3_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_49_50_ob(Event_SIMPLE_LIST_49_50);
+      element[5]= new Composite_secondary_producer(Event_S4_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_79_80_ob(Event_SIMPLE_LIST_79_80);
+    } 
+};// end class SCHEMA_FiniteStateDiagram
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example13_FiniteStateDiagram.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_1_2 temp_31; temp_31.harvest();
+    Comp_5_6 temp_32; temp_32.harvest();
+    Comp_19_20 temp_33; temp_33.harvest();
+    Comp_33_34 temp_34; temp_34.harvest();
+    Comp_35_36 temp_35; temp_35.harvest();
+    Comp_51_52 temp_36; temp_36.harvest();
+   // harvesting traces for ROOT events 
+    Comp_17_18 temp_37; temp_37.harvest();
+    Comp_27_28 temp_38; temp_38.harvest();
+    Comp_45_46 temp_39; temp_39.harvest();
+    Comp_59_60 temp_40; temp_40.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_FiniteStateDiagram temp_41; temp_41.harvest();
+   temp_41.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"FiniteStateDiagram"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.mp
new file mode 100644
index 0000000..90b7756
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.mp
@@ -0,0 +1,80 @@
+/*  Example13_FiniteStateDiagram.mp
+
+    example of finite state diagram behavior model,
+    contains non-deterministic transitions (from S1 with symbol a), 
+    and a single state loop (S3 with a).
+    
+    The finite state transition diagram:
+    
+    Start -> S1
+    S1 -> a -> S3
+    S1 -> a -> S4
+    S1 -> b -> S4
+    S2 -> b -> S1
+    S2 -> End
+    S3 -> a -> S3
+    S3 -> b -> S4
+    S4 -> a -> S2
+    
+    Direct modeling of the state diagram including state visits 
+	and actions triggering state transitions. Only paths starting 
+    with Start and ending with End are valid.
+    
+    Behavior of each state Si is represented by a separate 
+    root event Si_behavior.
+    
+    Each transition in the diagram Si -> Sj is modeled by a 
+    composite event Si_to_Sj.
+    
+    1) Event Si_to_Sj contains the symbol triggering the transition. 
+    2) Si_to_Sj is shared by corresponding state behavior roots.
+     
+    run for: 
+    scope 1 (4 traces),
+    scope 2 (30 traces),
+    scope 3 (258 traces)
+*/
+
+SCHEMA FiniteStateDiagram
+
+S1_to_S3: a;
+S1_to_S4: (a | b);
+
+ROOT S1_behavior:  	Start S1 
+					(* (S1_to_S3 | S1_to_S4) S2_to_S1 S1 *) 
+					(S1_to_S3 | S1_to_S4);
+
+S2_to_S1: b;
+
+ROOT S2_behavior:  	(* S4_to_S2 S2 S2_to_S1  *) 
+					S4_to_S2 S2 End;
+
+S1_behavior, S2_behavior SHARE ALL S2_to_S1;
+
+/* coordination should be done as soon as possible,
+	in order to prune the search, 
+	but only after both root S1_behavior and S2_behavior 
+	traces are available */
+
+S3_to_S3: a;
+S3_to_S4: b;
+
+ROOT S3_behavior: (* 	S1_to_S3 S3 
+    					(* S3_to_S3 S3 *)
+    					S3_to_S4 			*) ;
+
+S3_behavior, S1_behavior SHARE ALL S1_to_S3;
+
+S4_to_S2: a;
+
+ROOT S4_behavior: (* (S1_to_S4 | S3_to_S4) S4 
+    					 S4_to_S2 *) ;
+
+S4_behavior, S1_behavior SHARE ALL S1_to_S4;
+S4_behavior, S2_behavior SHARE ALL S4_to_S2;
+S4_behavior, S3_behavior SHARE ALL S3_to_S4;
+
+SAY("The path: ");
+/* Sort state visits and transition events according to the BEFORE relation and then show them */
+COORDINATE 	<SORT> $a: (S1 | S2 | S3 | S4 | a | b | Start | End)
+	DO SAY($a); OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp.txt
new file mode 100644
index 0000000..76fa7e3
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example13_FiniteStateDiagram tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.tree
new file mode 100644
index 0000000000000000000000000000000000000000..4883c937d5ee81b865449464ebf11c20fdb06361
GIT binary patch
literal 13824
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
Uh3=gRt26ok^%utRzq9`T1^g>Jv;Y7A

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.txt
new file mode 100644
index 0000000..b4d3b70
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example13_FiniteStateDiagram.txt
@@ -0,0 +1,31 @@
+generating traces for scope 1 
+completed S1_to_S3: 	1 traces (0 MARKed) 	2 events 
+
+completed S1_to_S4: 	2 traces (0 MARKed) 	4 events 
+		average 2 ev/trace 	min 2 	max 2
+
+completed S2_to_S1: 	1 traces (0 MARKed) 	2 events 
+
+completed S3_to_S3: 	1 traces (0 MARKed) 	2 events 
+
+completed S3_to_S4: 	1 traces (0 MARKed) 	2 events 
+
+completed S4_to_S2: 	1 traces (0 MARKed) 	2 events 
+
+completed S1_behavior: 	12 traces (0 MARKed) 	105 events 
+		average 8.75 ev/trace 	min 5 	max 10
+
+completed S2_behavior: 	2 traces (0 MARKed) 	15 events 
+		average 7.5 ev/trace 	min 5 	max 10
+
+completed S3_behavior: 	3 traces (0 MARKed) 	16 events 
+		average 5.33333 ev/trace 	min 1 	max 9
+
+completed S4_behavior: 	4 traces (0 MARKed) 	19 events 
+		average 4.75 ev/trace 	min 1 	max 6
+
+completed FiniteStateDiagram: 	4 traces (0 MARKed) 	123 events 
+		average 30.75 ev/trace 	min 26 	max 38
+
+Elapsed time 0.09693 sec, Speed: 3012.48 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.cpp
new file mode 100644
index 0000000..eaa5ff1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.cpp
@@ -0,0 +1,1996 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA petri_net trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > initial_tokens_number_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( initial_tokens_number_attribute[event1] != initial_tokens_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    initial_tokens_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!initial_tokens_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("initial_tokens",initial_tokens_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "initial_tokens"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         initial_tokens_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_171_Diagram;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send_token
+    , Event_get_token
+    , Event_T1_receives_from_P1
+    , Event_T1_fires
+    , Event_T2_receives_from_P2
+    , Event_T2_receives_from_P3
+    , Event_T2_fires
+       // composite events 
+    , Event_P1_sends_to_T1
+    , Event_P1_receives_from_T2
+    , Event_T1_sends_to_P2
+    , Event_T1_sends_to_P3
+    , Event_P2_receives_from_T1
+    , Event_P2_sends_to_T2
+    , Event_P3_receives_from_T1
+    , Event_P3_sends_to_T2
+    , Event_T2_sends_to_P1
+    , Event_T2_sends_to_P4
+    , Event_P4_receives_from_T2
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_21_22
+    , Event_SIMPLE_LIST_43_44
+    , Event_SIMPLE_LIST_59_60
+    , Event_SIMPLE_LIST_73_74
+    , Event_SIMPLE_LIST_91_92
+    , Event_SIMPLE_LIST_105_106
+    , Event_SIMPLE_LIST_141_142
+    , Event_SIMPLE_LIST_172_173
+    , Event_SIMPLE_LIST_205_206
+       // ADD operations 
+       // ROOT events 
+    , Event_P1_behavior
+    , Event_T1_behavior
+    , Event_P2_behavior
+    , Event_P3_behavior
+    , Event_T2_behavior
+    , Event_P4_behavior
+       // main schema event 
+    , Event_petri_net }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send_token"
+     , "get_token"
+     , "T1_receives_from_P1"
+     , "T1_fires"
+     , "T2_receives_from_P2"
+     , "T2_receives_from_P3"
+     , "T2_fires"
+     , "P1_sends_to_T1"
+     , "P1_receives_from_T2"
+     , "T1_sends_to_P2"
+     , "T1_sends_to_P3"
+     , "P2_receives_from_T1"
+     , "P2_sends_to_T2"
+     , "P3_receives_from_T1"
+     , "P3_sends_to_T2"
+     , "T2_sends_to_P1"
+     , "T2_sends_to_P4"
+     , "P4_receives_from_T2"
+     , "SIMPLE_LIST_21_22"
+     , "SIMPLE_LIST_43_44"
+     , "SIMPLE_LIST_59_60"
+     , "SIMPLE_LIST_73_74"
+     , "SIMPLE_LIST_91_92"
+     , "SIMPLE_LIST_105_106"
+     , "SIMPLE_LIST_141_142"
+     , "SIMPLE_LIST_172_173"
+     , "SIMPLE_LIST_205_206"
+     , "P1_behavior"
+     , "T1_behavior"
+     , "P2_behavior"
+     , "P3_behavior"
+     , "T2_behavior"
+     , "P4_behavior"
+     , "petri_net" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_13(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_14(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_51(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_52(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_83(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_84(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_157(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_158(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_161(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_162(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_176(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_send_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+bool Quantified_expr_15_16(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_P1_sends_to_T1)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_13(current_host, s_variable ) > special_function_14(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 13 ---- 
+bool Quantified_expr_53_54(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_P2_sends_to_T2)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_51(current_host, s_variable ) > special_function_52(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 14 ---- 
+bool Quantified_expr_85_86(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   
+            (Stack[s_variable]-> name == Event_P3_sends_to_T2)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_83(current_host, s_variable ) > special_function_84(current_host, 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 15 ---- 
+bool Quantified_expr_187_188(Coordinate * current_host, int a_variable, int b_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int c_variable;
+     int pivot_c_variable = a_variable ; 
+     int d_variable;
+     int pivot_d_variable = b_variable ; 
+
+     // loop 1 for c_variable 
+     for( c_variable = 0; c_variable < len; c_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ c_variable  * len +  pivot_c_variable 
+]) && 
+           (   Stack[ c_variable ]->type == Composite_event_instance_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for d_variable 
+     for( d_variable = 0; d_variable < len; d_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ d_variable  * len +  pivot_d_variable 
+]) && 
+           (   Stack[ d_variable ]->type == Atom || Stack[ d_variable 
+]->type == ROOT_node || Stack[ d_variable 
+]->type == Composite_event_instance_node || Stack[ d_variable 
+]->type == Schema_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( find_pair_in_table( d_variable , c_variable ,	Follows) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 16 ---- for aggregate operation aggregate_# 
+int aggregate_op_177(Coordinate * current_host, int  pivot
+    , int a_variable){ 
+    int t_variable ; 
+    int temp = 0 ; 
+// #event traversal performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+     bool first = true; 
+
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     // create list of selected events 
+     for( t_variable = 0; t_variable < len; t_variable ++){ 
+       if(current_host->in_matrix[ t_variable * len +  pivot]){ 
+         if(   Stack[t_variable]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = current_host->eq_matrix[ t_variable * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found && ( special_function_176(current_host, t_variable ) == 0 )
+        ) {selected_list.push_back( t_variable ); 
+    temp = temp + 1 ;}; 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return temp; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 17 ---- 
+class SIMPLE_LIST_21_22_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_21_22_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_15_16(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_21_22_ob class
+
+//---- 18 ---- 
+class SIMPLE_LIST_43_44_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_43_44_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P1_sends_to_T1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T1_receives_from_P1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_43_44_ob class
+
+//---- 19 ---- 
+class SIMPLE_LIST_59_60_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_59_60_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_53_54(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_59_60_ob class
+
+//---- 20 ---- 
+class SIMPLE_LIST_73_74_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_73_74_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T1_sends_to_P2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P2_receives_from_T1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_73_74_ob class
+
+//---- 21 ---- 
+class SIMPLE_LIST_91_92_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_91_92_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_85_86(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_91_92_ob class
+
+//---- 22 ---- 
+class SIMPLE_LIST_105_106_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_105_106_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T1_sends_to_P3))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P3_receives_from_T1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_105_106_ob class
+
+//---- 23 ---- 
+class SIMPLE_LIST_141_142_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_141_142_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P2_sends_to_T2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T2_receives_from_P2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P3_sends_to_T2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T2_receives_from_P3))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T2_sends_to_P1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P1_receives_from_T2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_141_142_ob class
+
+//---- 24 ---- 
+class SIMPLE_LIST_172_173_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_172_173_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_T2_sends_to_P4))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         s_variable = 0; } 
+      else{ 
+         s_variable = s_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P4_receives_from_T2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,s_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_P1_behavior)|| (Stack[i]->name == Event_P2_behavior)|| (Stack[i]->name == Event_P3_behavior)|| (Stack[i]->name == Event_P4_behavior)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    b_variable= b_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"At the end of simulation place ";
+     convert << event_name_string[Stack[ b_variable ]->name]; 
+     convert <<" has ";
+     convert << ( special_function_161(current_host, b_variable ) - special_function_162(current_host, 
+b_variable ) ); 
+     convert <<" tokens";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // Diagram title generation 
+     ostringstream convert; 
+     convert <<"Petri net diagram";
+     GRAPH_171_Diagram.title = convert.str();}
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_172_173_ob class
+
+//---- 25 ---- 
+class SIMPLE_LIST_205_206_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_205_206_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // WITHIN Diagram 
+   int f_174_node_var = -1; 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == ROOT_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ a_variable ]->name]; 
+    f_174_node_var = GRAPH_171_Diagram.find_or_create_new_node(convert.str());}
+   // attribute initial_tokens assignment 
+    initial_tokens_number_attribute[a_variable]=aggregate_op_177(current_host, 
+a_variable 
+     , a_variable) ; 
+   if( ( 
+       initial_tokens_number_attribute[a_variable] > 0 )){ 
+  // add_arrow for GRAPH_171_Diagram 
+  int temp_1_1 ; { 
+     ostringstream convert; 
+     convert <<"Start";
+     temp_1_1 = GRAPH_171_Diagram . find_or_create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"initial ";
+     convert << 
+       initial_tokens_number_attribute[a_variable] ; 
+     convert <<" tokens";
+     GRAPH_171_Diagram.add_arrow(temp_1_1,f_174_node_var,convert.str());}
+   }// end THEN 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == ROOT_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    b_variable= b_variable_list[i];
+   if( ( ( a_variable != b_variable ) && Quantified_expr_187_188(current_host, a_variable, b_variable
+) )){ 
+  // add_arrow for GRAPH_171_Diagram 
+  int temp_2_2 ; { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ b_variable ]->name]; 
+     temp_2_2 = GRAPH_171_Diagram . find_or_create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert << 1 ; 
+     GRAPH_171_Diagram.add_arrow(f_174_node_var,temp_2_2,convert.str());}
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_205_206_ob class
+
+//---- 26 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P1_receives_from_T2)
+; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 27 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_5_6 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P1_sends_to_T1); 
+    } 
+};// end class Sq_7_8 
+
+//---- 28 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 29 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Itr_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 30 ---- 
+class Set_25_26 : public SET_node_producer_container { 
+public: // constructor 
+    Set_25_26 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_T1_sends_to_P2); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_T1_sends_to_P3); 
+    } 
+};// end class Set_25_26 
+
+//---- 31 ---- 
+class Sq_27_28 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_27_28 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_T1_receives_from_P1); 
+      element[ 1 ]=  new Atomic_producer(Event_T1_fires); 
+      element[ 2 ]=  new Set_25_26 ; 
+    } 
+};// end class Sq_27_28 
+
+//---- 32 ---- 
+class Itr_29_30 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_29_30 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_27_28 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_29_30 
+
+//---- 33 ---- 
+class Itr_45_46 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_45_46 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P2_receives_from_T1)
+; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_45_46 
+
+//---- 34 ---- 
+class Sq_47_48 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_47_48 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_45_46 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P2_sends_to_T2); 
+    } 
+};// end class Sq_47_48 
+
+//---- 35 ---- 
+class Itr_49_50 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_49_50 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_47_48 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_49_50 
+
+//---- 36 ---- 
+class Itr_75_76 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_75_76 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P3_receives_from_T1)
+; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_75_76 
+
+//---- 37 ---- 
+class Sq_77_78 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_77_78 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_75_76 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P3_sends_to_T2); 
+    } 
+};// end class Sq_77_78 
+
+//---- 38 ---- 
+class Itr_79_80 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_79_80 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_77_78 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_79_80 
+
+//---- 39 ---- 
+class Sq_81_82 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_81_82 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+      element[ 2 ]=  new Itr_79_80 ; 
+    } 
+};// end class Sq_81_82 
+
+//---- 40 ---- 
+class Set_107_108 : public SET_node_producer_container { 
+public: // constructor 
+    Set_107_108 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_T2_receives_from_P2); 
+      element[ 1 ]=  new Atomic_producer(Event_T2_receives_from_P3); 
+    } 
+};// end class Set_107_108 
+
+//---- 41 ---- 
+class Set_109_110 : public SET_node_producer_container { 
+public: // constructor 
+    Set_109_110 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_T2_sends_to_P1); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_T2_sends_to_P4); 
+    } 
+};// end class Set_109_110 
+
+//---- 42 ---- 
+class Opt_111_112 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_111_112 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Set_109_110 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_111_112 
+
+//---- 43 ---- 
+class Sq_113_114 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_113_114 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Set_107_108 ; 
+      element[ 1 ]=  new Atomic_producer(Event_T2_fires); 
+      element[ 2 ]=  new Opt_111_112 ; 
+    } 
+};// end class Sq_113_114 
+
+//---- 44 ---- 
+class Itr_115_116 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_115_116 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_113_114 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_115_116 
+
+//---- 45 ---- 
+class Itr_143_144 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_143_144 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_P4_receives_from_T2)
+; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_143_144 
+
+//---- 46 ---- 
+class Sq_145_146 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_145_146 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Itr_143_144 ; 
+    } 
+};// end class Sq_145_146 
+
+//---- 47 ---- 
+class Comp_1_2 : public Composite_producer { 
+public: // constructor 
+    Comp_1_2 (): Composite_producer(Event_P1_sends_to_T1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_1_2 
+
+//---- 48 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_P1_receives_from_T2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Comp_3_4 
+
+//---- 49 ---- 
+class Comp_33_34 : public Composite_producer { 
+public: // constructor 
+    Comp_33_34 (): Composite_producer(Event_T1_sends_to_P2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_33_34 
+
+//---- 50 ---- 
+class Comp_35_36 : public Composite_producer { 
+public: // constructor 
+    Comp_35_36 (): Composite_producer(Event_T1_sends_to_P3){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_35_36 
+
+//---- 51 ---- 
+class Comp_63_64 : public Composite_producer { 
+public: // constructor 
+    Comp_63_64 (): Composite_producer(Event_P2_receives_from_T1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Comp_63_64 
+
+//---- 52 ---- 
+class Comp_65_66 : public Composite_producer { 
+public: // constructor 
+    Comp_65_66 (): Composite_producer(Event_P2_sends_to_T2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_65_66 
+
+//---- 53 ---- 
+class Comp_95_96 : public Composite_producer { 
+public: // constructor 
+    Comp_95_96 (): Composite_producer(Event_P3_receives_from_T1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Comp_95_96 
+
+//---- 54 ---- 
+class Comp_97_98 : public Composite_producer { 
+public: // constructor 
+    Comp_97_98 (): Composite_producer(Event_P3_sends_to_T2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_97_98 
+
+//---- 55 ---- 
+class Comp_119_120 : public Composite_producer { 
+public: // constructor 
+    Comp_119_120 (): Composite_producer(Event_T2_sends_to_P1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_119_120 
+
+//---- 56 ---- 
+class Comp_121_122 : public Composite_producer { 
+public: // constructor 
+    Comp_121_122 (): Composite_producer(Event_T2_sends_to_P4){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send_token); 
+    } 
+};// end class Comp_121_122 
+
+//---- 57 ---- 
+class Comp_149_150 : public Composite_producer { 
+public: // constructor 
+    Comp_149_150 (): Composite_producer(Event_P4_receives_from_T2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Comp_149_150 
+
+//---- 58 ---- 
+class Comp_23_24 : public Composite_producer { 
+public: // constructor 
+    Comp_23_24 (): Composite_producer(Event_P1_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+      element[ 1 ]=  new SIMPLE_LIST_21_22_ob(Event_SIMPLE_LIST_21_22); 
+    } 
+};// end class Comp_23_24 
+
+//---- 59 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_T1_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_29_30 ; 
+    } 
+};// end class Comp_31_32 
+
+//---- 60 ---- 
+class Comp_61_62 : public Composite_producer { 
+public: // constructor 
+    Comp_61_62 (): Composite_producer(Event_P2_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_49_50 ; 
+      element[ 1 ]=  new SIMPLE_LIST_59_60_ob(Event_SIMPLE_LIST_59_60); 
+    } 
+};// end class Comp_61_62 
+
+//---- 61 ---- 
+class Comp_93_94 : public Composite_producer { 
+public: // constructor 
+    Comp_93_94 (): Composite_producer(Event_P3_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_81_82 ; 
+      element[ 1 ]=  new SIMPLE_LIST_91_92_ob(Event_SIMPLE_LIST_91_92); 
+    } 
+};// end class Comp_93_94 
+
+//---- 62 ---- 
+class Comp_117_118 : public Composite_producer { 
+public: // constructor 
+    Comp_117_118 (): Composite_producer(Event_T2_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_115_116 ; 
+    } 
+};// end class Comp_117_118 
+
+//---- 63 ---- 
+class Comp_147_148 : public Composite_producer { 
+public: // constructor 
+    Comp_147_148 (): Composite_producer(Event_P4_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_145_146 ; 
+    } 
+};// end class Comp_147_148 
+
+//---- 64 ---- 
+class SCHEMA_petri_net: public Composite_producer {
+public: // constructor 
+    SCHEMA_petri_net(): Composite_producer(Event_petri_net){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 12 ]; 
+      element[0]= new Composite_secondary_producer(Event_P1_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_T1_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_43_44_ob(Event_SIMPLE_LIST_43_44);
+      element[3]= new Composite_secondary_producer(Event_P2_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_73_74_ob(Event_SIMPLE_LIST_73_74);
+      element[5]= new Composite_secondary_producer(Event_P3_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_105_106_ob(Event_SIMPLE_LIST_105_106);
+      element[7]= new Composite_secondary_producer(Event_T2_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[7] -> type = ROOT_node; 
+      element[8]= new SIMPLE_LIST_141_142_ob(Event_SIMPLE_LIST_141_142);
+      element[9]= new Composite_secondary_producer(Event_P4_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[9] -> type = ROOT_node; 
+      element[10]= new SIMPLE_LIST_172_173_ob(Event_SIMPLE_LIST_172_173);
+      element[11]= new SIMPLE_LIST_205_206_ob(Event_SIMPLE_LIST_205_206);
+    } 
+};// end class SCHEMA_petri_net
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    // SHOW Diagram 
+    graph_container.insert(pair<int, graph_object>( 3,GRAPH_171_Diagram));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example15_Petri_net.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_1_2 temp_65; temp_65.harvest();
+    Comp_3_4 temp_66; temp_66.harvest();
+    Comp_33_34 temp_67; temp_67.harvest();
+    Comp_35_36 temp_68; temp_68.harvest();
+    Comp_63_64 temp_69; temp_69.harvest();
+    Comp_65_66 temp_70; temp_70.harvest();
+    Comp_95_96 temp_71; temp_71.harvest();
+    Comp_97_98 temp_72; temp_72.harvest();
+    Comp_119_120 temp_73; temp_73.harvest();
+    Comp_121_122 temp_74; temp_74.harvest();
+    Comp_149_150 temp_75; temp_75.harvest();
+   // harvesting traces for ROOT events 
+    Comp_23_24 temp_76; temp_76.harvest();
+    Comp_31_32 temp_77; temp_77.harvest();
+    Comp_61_62 temp_78; temp_78.harvest();
+    Comp_93_94 temp_79; temp_79.harvest();
+    Comp_117_118 temp_80; temp_80.harvest();
+    Comp_147_148 temp_81; temp_81.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_petri_net temp_82; temp_82.harvest();
+   temp_82.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"petri_net"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.mp
new file mode 100644
index 0000000..b0ecf3b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.mp
@@ -0,0 +1,111 @@
+/* Example15_Petri_net.mp
+	modeling Petri net behavior
+    see the Petri net diagram in Sec. 2.16.2 in the MP v.4 Language Manual
+	scope 1 (2 traces, 0.02 sec.)
+    scope 2 (4 traces, 6.23 sec.)
+
+    to obtain in the Global view Petri net diagram 
+        extracted from the event traces, run scope 2
+=======================================================*/
+
+SCHEMA petri_net
+/* 	behavior of each place and transition 
+	is modeled by a separate root event */
+
+P1_sends_to_T1: send_token;
+P1_receives_from_T2: get_token;
+
+ROOT P1_behavior: 	get_token (*	(* P1_receives_from_T2 *) 
+    								P1_sends_to_T1  			*)
+		BUILD{ ENSURE FOREACH $s: P1_sends_to_T1 
+            	#get_token BEFORE $s > #send_token BEFORE $s;};
+
+ROOT T1_behavior: (* 	T1_receives_from_P1 T1_fires 
+    					{T1_sends_to_P2, T1_sends_to_P3} 	*);
+T1_sends_to_P2: send_token;
+T1_sends_to_P3: send_token;
+
+COORDINATE 	$s: P1_sends_to_T1,
+			$r: T1_receives_from_P1
+	DO ADD $s PRECEDES $r; OD;
+
+ROOT P2_behavior: (* 	(* P2_receives_from_T1 *) 
+    					P2_sends_to_T2  			*)
+		BUILD{ ENSURE FOREACH $s: P2_sends_to_T2 
+            	#get_token BEFORE $s > #send_token BEFORE $s;};
+P2_receives_from_T1: get_token;
+P2_sends_to_T2: send_token;
+
+COORDINATE 	$s: T1_sends_to_P2,
+			$r: P2_receives_from_T1
+	DO ADD $s PRECEDES $r; OD;
+
+ROOT P3_behavior: 	get_token get_token 
+					(* 	(* P3_receives_from_T1 *) 
+    					P3_sends_to_T2 				*)
+		BUILD{ ENSURE FOREACH $s: P3_sends_to_T2 
+            	#get_token BEFORE $s > #send_token BEFORE $s;};
+P3_receives_from_T1: get_token;
+P3_sends_to_T2: send_token;
+
+COORDINATE 	$s: T1_sends_to_P3,
+			$r: P3_receives_from_T1
+	DO ADD $s PRECEDES $r; OD;
+
+ROOT T2_behavior: (* 	{T2_receives_from_P2, T2_receives_from_P3} T2_fires 
+    					[{T2_sends_to_P1, T2_sends_to_P4}] 	*);
+/* T2_sends_to events are made optional to terminate the loop from T2 to P1*/
+T2_sends_to_P1: send_token;
+T2_sends_to_P4: send_token;
+
+COORDINATE 	$s: P2_sends_to_T2,
+			$r: T2_receives_from_P2
+	DO ADD $s PRECEDES $r; OD;
+
+COORDINATE 	$s: P3_sends_to_T2,
+			$r: T2_receives_from_P3
+	DO ADD $s PRECEDES $r; OD;
+
+COORDINATE 	$s: T2_sends_to_P1,
+			$r: P1_receives_from_T2
+	DO ADD $s PRECEDES $r; OD;
+
+ROOT P4_behavior: get_token (* P4_receives_from_T2 *);
+P4_receives_from_T2: get_token;
+
+COORDINATE 	$s: T2_sends_to_P4,
+			$r: P4_receives_from_T2
+	DO ADD $s PRECEDES $r; OD;
+
+COORDINATE $b: (P1_behavior | P2_behavior | P3_behavior | P4_behavior)
+	DO SAY("At the end of simulation place " $b " has " 
+        #get_token FROM $b - #send_token FROM $b " tokens");
+    OD;
+/*================================================================
+	Building Petri net diagram
+=================================================================*/
+GRAPH Diagram { TITLE ("Petri net diagram");};
+ATTRIBUTES {number initial_tokens;};
+
+WITHIN Diagram{
+  COORDINATE $a: $$ROOT DO
+	Node$f: LAST($a);
+    
+	$a.initial_tokens := 
+	   #{$t: get_token FROM $a SUCH THAT #send_token BEFORE $t == 0};
+    
+	IF $a.initial_tokens > 0 THEN 
+		ADD LAST("Start") ARROW("initial " $a.initial_tokens " tokens") Node$f;
+    FI;
+
+	COORDINATE $b: $$ROOT DO
+    	IF  $a != $b AND 
+            /* looking for $c: A_sends_to_B and $d: B_receives_from_A events */
+            EXISTS $c: $$COMPOSITE FROM $a, $d: $$EVENT FROM $b ($c PRECEDES $d)
+    	THEN ADD Node$f ARROW(1) LAST($b); FI;
+	OD;
+  OD;
+}; /* end WITHIN */
+
+GLOBAL
+SHOW Diagram;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp.txt
new file mode 100644
index 0000000..20c3b38
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example15_Petri_net tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.tree
new file mode 100644
index 0000000000000000000000000000000000000000..1e4e740f7ae3248261a4887c25a8e4224ba67b06
GIT binary patch
literal 32256
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
T$2_{n&@Ea~Et!E|egFS|4>_V&

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.txt
new file mode 100644
index 0000000..60ab991
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example15_Petri_net.txt
@@ -0,0 +1,46 @@
+generating traces for scope 1 
+completed P1_sends_to_T1: 	1 traces (0 MARKed) 	2 events 
+
+completed P1_receives_from_T2: 	1 traces (0 MARKed) 	2 events 
+
+completed T1_sends_to_P2: 	1 traces (0 MARKed) 	2 events 
+
+completed T1_sends_to_P3: 	1 traces (0 MARKed) 	2 events 
+
+completed P2_receives_from_T1: 	1 traces (0 MARKed) 	2 events 
+
+completed P2_sends_to_T2: 	1 traces (0 MARKed) 	2 events 
+
+completed P3_receives_from_T1: 	1 traces (0 MARKed) 	2 events 
+
+completed P3_sends_to_T2: 	1 traces (0 MARKed) 	2 events 
+
+completed T2_sends_to_P1: 	1 traces (0 MARKed) 	2 events 
+
+completed T2_sends_to_P4: 	1 traces (0 MARKed) 	2 events 
+
+completed P4_receives_from_T2: 	1 traces (0 MARKed) 	2 events 
+
+completed P1_behavior: 	3 traces (0 MARKed) 	12 events 
+		average 4 ev/trace 	min 2 	max 6
+
+completed T1_behavior: 	2 traces (0 MARKed) 	8 events 
+		average 4 ev/trace 	min 1 	max 7
+
+completed P2_behavior: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 1 	max 5
+
+completed P3_behavior: 	3 traces (0 MARKed) 	15 events 
+		average 5 ev/trace 	min 3 	max 7
+
+completed T2_behavior: 	3 traces (0 MARKed) 	13 events 
+		average 4.33333 ev/trace 	min 1 	max 8
+
+completed P4_behavior: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 2 	max 4
+
+completed petri_net: 	2 traces (0 MARKed) 	49 events 
+		average 24.5 ev/trace 	min 15 	max 34
+
+Elapsed time 0.038257 sec, Speed: 3424.21 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.cpp
new file mode 100644
index 0000000..c13b7fd
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.cpp
@@ -0,0 +1,1058 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA spiral trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Initial_communication_with_stakeholders
+    , Event_Prototype_demonstration_to_stakeholders
+    , Event_Stakeholders_are_not_satisfied
+    , Event_Stakeholders_are_satisfied
+    , Event_Initial_requirements
+    , Event_Delivery_of_the_system
+    , Event_Adjust_requirements
+    , Event_Architecture_design
+    , Event_Detailed_design
+    , Event_Coding
+    , Event_Testing
+    , Event_Architecture_redesign
+    , Event_Detailed_redesign
+       // composite events 
+    , Event_One_iteration
+    , Event_Initial_design
+    , Event_Redesign
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_31_32
+    , Event_SIMPLE_LIST_45_46
+    , Event_SIMPLE_LIST_57_58
+       // ADD operations 
+       // ROOT events 
+    , Event_Stakeholders
+    , Event_Spiral_process
+    , Event_Architect
+    , Event_Developers
+       // main schema event 
+    , Event_spiral }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Initial_communication_with_stakeholders"
+     , "Prototype_demonstration_to_stakeholders"
+     , "Stakeholders_are_not_satisfied"
+     , "Stakeholders_are_satisfied"
+     , "Initial_requirements"
+     , "Delivery_of_the_system"
+     , "Adjust_requirements"
+     , "Architecture_design"
+     , "Detailed_design"
+     , "Coding"
+     , "Testing"
+     , "Architecture_redesign"
+     , "Detailed_redesign"
+     , "One_iteration"
+     , "Initial_design"
+     , "Redesign"
+     , "SIMPLE_LIST_31_32"
+     , "SIMPLE_LIST_45_46"
+     , "SIMPLE_LIST_57_58"
+     , "Stakeholders"
+     , "Spiral_process"
+     , "Architect"
+     , "Developers"
+     , "spiral" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_31_32_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_31_32_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Stakeholders_source = Root_table[Event_Stakeholders];
+   // lists of shared events for  Stakeholders 
+  vector<int> Stakeholders_Initial_communication_with_stakeholders_list;
+  vector<int> Stakeholders_Prototype_demonstration_to_stakeholders_list;
+  vector<int> Stakeholders_Stakeholders_are_not_satisfied_list;
+  vector<int> Stakeholders_Stakeholders_are_satisfied_list;
+
+  int Spiral_process_source = Root_table[Event_Spiral_process];
+   // lists of shared events for  Spiral_process 
+  vector<int> Spiral_process_Initial_communication_with_stakeholders_list;
+  vector<int> Spiral_process_Prototype_demonstration_to_stakeholders_list;
+  vector<int> Spiral_process_Stakeholders_are_not_satisfied_list;
+  vector<int> Spiral_process_Stakeholders_are_satisfied_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Stakeholders_source ]){ 
+     if( Stack[i]->name == Event_Initial_communication_with_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Stakeholders_Initial_communication_with_stakeholders_list.begin();
+          s != Stakeholders_Initial_communication_with_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Stakeholders_Initial_communication_with_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Prototype_demonstration_to_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Stakeholders_Prototype_demonstration_to_stakeholders_list.begin();
+          s != Stakeholders_Prototype_demonstration_to_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Stakeholders_Prototype_demonstration_to_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Stakeholders_are_not_satisfied ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Stakeholders_Stakeholders_are_not_satisfied_list.begin();
+          s != Stakeholders_Stakeholders_are_not_satisfied_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Stakeholders_Stakeholders_are_not_satisfied_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Stakeholders_are_satisfied ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Stakeholders_Stakeholders_are_satisfied_list.begin();
+          s != Stakeholders_Stakeholders_are_satisfied_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Stakeholders_Stakeholders_are_satisfied_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Spiral_process_source ]){ 
+     if( Stack[i]->name == Event_Initial_communication_with_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Initial_communication_with_stakeholders_list.begin();
+          s != Spiral_process_Initial_communication_with_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Initial_communication_with_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Prototype_demonstration_to_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Prototype_demonstration_to_stakeholders_list.begin();
+          s != Spiral_process_Prototype_demonstration_to_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Prototype_demonstration_to_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Stakeholders_are_not_satisfied ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Stakeholders_are_not_satisfied_list.begin();
+          s != Spiral_process_Stakeholders_are_not_satisfied_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Stakeholders_are_not_satisfied_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Stakeholders_are_satisfied ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Stakeholders_are_satisfied_list.begin();
+          s != Spiral_process_Stakeholders_are_satisfied_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Stakeholders_are_satisfied_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Spiral_process_Initial_communication_with_stakeholders_list.size();
+     if(Stakeholders_Initial_communication_with_stakeholders_list.size() != len_to_compare) 
+throw failed ; 
+   len_to_compare = Spiral_process_Prototype_demonstration_to_stakeholders_list.size();
+     if(Stakeholders_Prototype_demonstration_to_stakeholders_list.size() != len_to_compare) 
+throw failed ; 
+   len_to_compare = Spiral_process_Stakeholders_are_not_satisfied_list.size();
+     if(Stakeholders_Stakeholders_are_not_satisfied_list.size() != len_to_compare) 
+throw failed ; 
+   len_to_compare = Spiral_process_Stakeholders_are_satisfied_list.size();
+     if(Stakeholders_Stakeholders_are_satisfied_list.size() != len_to_compare) 
+throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Spiral_process_Initial_communication_with_stakeholders_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Stakeholders_Initial_communication_with_stakeholders_list[i], Spiral_process_Initial_communication_with_stakeholders_list[i]);
+   } 
+   len_to_compare = Spiral_process_Prototype_demonstration_to_stakeholders_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Stakeholders_Prototype_demonstration_to_stakeholders_list[i], Spiral_process_Prototype_demonstration_to_stakeholders_list[i]);
+   } 
+   len_to_compare = Spiral_process_Stakeholders_are_not_satisfied_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Stakeholders_Stakeholders_are_not_satisfied_list[i], Spiral_process_Stakeholders_are_not_satisfied_list[i]);
+   } 
+   len_to_compare = Spiral_process_Stakeholders_are_satisfied_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Stakeholders_Stakeholders_are_satisfied_list[i], Spiral_process_Stakeholders_are_satisfied_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_31_32_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_45_46_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_45_46_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Architect_source = Root_table[Event_Architect];
+   // lists of shared events for  Architect 
+  vector<int> Architect_Initial_communication_with_stakeholders_list;
+  vector<int> Architect_Initial_requirements_list;
+  vector<int> Architect_Architecture_design_list;
+  vector<int> Architect_Prototype_demonstration_to_stakeholders_list;
+  vector<int> Architect_Adjust_requirements_list;
+  vector<int> Architect_Architecture_redesign_list;
+
+  int Spiral_process_source = Root_table[Event_Spiral_process];
+   // lists of shared events for  Spiral_process 
+  vector<int> Spiral_process_Initial_communication_with_stakeholders_list;
+  vector<int> Spiral_process_Initial_requirements_list;
+  vector<int> Spiral_process_Architecture_design_list;
+  vector<int> Spiral_process_Prototype_demonstration_to_stakeholders_list;
+  vector<int> Spiral_process_Adjust_requirements_list;
+  vector<int> Spiral_process_Architecture_redesign_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Architect_source ]){ 
+     if( Stack[i]->name == Event_Initial_communication_with_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Initial_communication_with_stakeholders_list.begin();
+          s != Architect_Initial_communication_with_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Initial_communication_with_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Initial_requirements ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Initial_requirements_list.begin();
+          s != Architect_Initial_requirements_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Initial_requirements_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Architecture_design ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Architecture_design_list.begin();
+          s != Architect_Architecture_design_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Architecture_design_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Prototype_demonstration_to_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Prototype_demonstration_to_stakeholders_list.begin();
+          s != Architect_Prototype_demonstration_to_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Prototype_demonstration_to_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Adjust_requirements ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Adjust_requirements_list.begin();
+          s != Architect_Adjust_requirements_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Adjust_requirements_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Architecture_redesign ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Architect_Architecture_redesign_list.begin();
+          s != Architect_Architecture_redesign_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Architect_Architecture_redesign_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Spiral_process_source ]){ 
+     if( Stack[i]->name == Event_Initial_communication_with_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Initial_communication_with_stakeholders_list.begin();
+          s != Spiral_process_Initial_communication_with_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Initial_communication_with_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Initial_requirements ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Initial_requirements_list.begin();
+          s != Spiral_process_Initial_requirements_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Initial_requirements_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Architecture_design ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Architecture_design_list.begin();
+          s != Spiral_process_Architecture_design_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Architecture_design_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Prototype_demonstration_to_stakeholders ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Prototype_demonstration_to_stakeholders_list.begin();
+          s != Spiral_process_Prototype_demonstration_to_stakeholders_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Prototype_demonstration_to_stakeholders_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Adjust_requirements ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Adjust_requirements_list.begin();
+          s != Spiral_process_Adjust_requirements_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Adjust_requirements_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Architecture_redesign ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Architecture_redesign_list.begin();
+          s != Spiral_process_Architecture_redesign_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Architecture_redesign_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Spiral_process_Initial_communication_with_stakeholders_list.size();
+     if(Architect_Initial_communication_with_stakeholders_list.size() != len_to_compare) 
+throw failed ; 
+   len_to_compare = Spiral_process_Initial_requirements_list.size();
+     if(Architect_Initial_requirements_list.size() != len_to_compare) throw 
+failed ; 
+   len_to_compare = Spiral_process_Architecture_design_list.size();
+     if(Architect_Architecture_design_list.size() != len_to_compare) throw 
+failed ; 
+   len_to_compare = Spiral_process_Prototype_demonstration_to_stakeholders_list.size();
+     if(Architect_Prototype_demonstration_to_stakeholders_list.size() != len_to_compare) 
+throw failed ; 
+   len_to_compare = Spiral_process_Adjust_requirements_list.size();
+     if(Architect_Adjust_requirements_list.size() != len_to_compare) throw 
+failed ; 
+   len_to_compare = Spiral_process_Architecture_redesign_list.size();
+     if(Architect_Architecture_redesign_list.size() != len_to_compare) throw 
+failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Spiral_process_Initial_communication_with_stakeholders_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Initial_communication_with_stakeholders_list[i], Spiral_process_Initial_communication_with_stakeholders_list[i]);
+   } 
+   len_to_compare = Spiral_process_Initial_requirements_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Initial_requirements_list[i], Spiral_process_Initial_requirements_list[i]);
+   } 
+   len_to_compare = Spiral_process_Architecture_design_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Architecture_design_list[i], Spiral_process_Architecture_design_list[i]);
+   } 
+   len_to_compare = Spiral_process_Prototype_demonstration_to_stakeholders_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Prototype_demonstration_to_stakeholders_list[i], Spiral_process_Prototype_demonstration_to_stakeholders_list[i]);
+   } 
+   len_to_compare = Spiral_process_Adjust_requirements_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Adjust_requirements_list[i], Spiral_process_Adjust_requirements_list[i]);
+   } 
+   len_to_compare = Spiral_process_Architecture_redesign_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Architect_Architecture_redesign_list[i], Spiral_process_Architecture_redesign_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_45_46_ob class
+
+//---- 3 ---- 
+class SIMPLE_LIST_57_58_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_57_58_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Developers_source = Root_table[Event_Developers];
+   // lists of shared events for  Developers 
+  vector<int> Developers_Detailed_design_list;
+  vector<int> Developers_Detailed_redesign_list;
+  vector<int> Developers_Coding_list;
+  vector<int> Developers_Testing_list;
+
+  int Spiral_process_source = Root_table[Event_Spiral_process];
+   // lists of shared events for  Spiral_process 
+  vector<int> Spiral_process_Detailed_design_list;
+  vector<int> Spiral_process_Detailed_redesign_list;
+  vector<int> Spiral_process_Coding_list;
+  vector<int> Spiral_process_Testing_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Developers_source ]){ 
+     if( Stack[i]->name == Event_Detailed_design ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Developers_Detailed_design_list.begin();
+          s != Developers_Detailed_design_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Developers_Detailed_design_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Detailed_redesign ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Developers_Detailed_redesign_list.begin();
+          s != Developers_Detailed_redesign_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Developers_Detailed_redesign_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Coding ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Developers_Coding_list.begin();
+          s != Developers_Coding_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Developers_Coding_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Testing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Developers_Testing_list.begin();
+          s != Developers_Testing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Developers_Testing_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Spiral_process_source ]){ 
+     if( Stack[i]->name == Event_Detailed_design ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Detailed_design_list.begin();
+          s != Spiral_process_Detailed_design_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Detailed_design_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Detailed_redesign ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Detailed_redesign_list.begin();
+          s != Spiral_process_Detailed_redesign_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Detailed_redesign_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Coding ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Coding_list.begin();
+          s != Spiral_process_Coding_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Coding_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Testing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Spiral_process_Testing_list.begin();
+          s != Spiral_process_Testing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Spiral_process_Testing_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Spiral_process_Detailed_design_list.size();
+     if(Developers_Detailed_design_list.size() != len_to_compare) throw failed ;
+ 
+   len_to_compare = Spiral_process_Detailed_redesign_list.size();
+     if(Developers_Detailed_redesign_list.size() != len_to_compare) throw failed
+ ; 
+   len_to_compare = Spiral_process_Coding_list.size();
+     if(Developers_Coding_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Spiral_process_Testing_list.size();
+     if(Developers_Testing_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Spiral_process_Detailed_design_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Developers_Detailed_design_list[i], Spiral_process_Detailed_design_list[i]);
+   } 
+   len_to_compare = Spiral_process_Detailed_redesign_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Developers_Detailed_redesign_list[i], Spiral_process_Detailed_redesign_list[i]);
+   } 
+   len_to_compare = Spiral_process_Coding_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Developers_Coding_list[i], Spiral_process_Coding_list[i]);
+   } 
+   len_to_compare = Spiral_process_Testing_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Developers_Testing_list[i], Spiral_process_Testing_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_57_58_ob class
+
+//---- 4 ---- 
+class Sq_15_16 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_15_16 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Stakeholders_are_not_satisfied); 
+      element[ 1 ]=  new Atomic_producer(Event_Adjust_requirements); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Redesign); 
+      element[ 3 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+    } 
+};// end class Sq_15_16 
+
+//---- 5 ---- 
+class Sq_19_20 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_19_20 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Architecture_design); 
+      element[ 1 ]=  new Atomic_producer(Event_Detailed_design); 
+      element[ 2 ]=  new Atomic_producer(Event_Coding); 
+      element[ 3 ]=  new Atomic_producer(Event_Testing); 
+    } 
+};// end class Sq_19_20 
+
+//---- 6 ---- 
+class Opt_23_24 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_23_24 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Architecture_redesign); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_23_24 
+
+//---- 7 ---- 
+class Sq_25_26 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_25_26 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Opt_23_24 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Detailed_redesign); 
+      element[ 2 ]=  new Atomic_producer(Event_Coding); 
+      element[ 3 ]=  new Atomic_producer(Event_Testing); 
+    } 
+};// end class Sq_25_26 
+
+//---- 8 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Stakeholders_are_not_satisfied); 
+      element[ 1 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+    } 
+};// end class Sq_1_2 
+
+//---- 9 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 10 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Initial_communication_with_stakeholders)
+; 
+      element[ 1 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+      element[ 2 ]=  new Itr_3_4 ; 
+      element[ 3 ]=  new Atomic_producer(Event_Stakeholders_are_satisfied); 
+    } 
+};// end class Sq_5_6 
+
+//---- 11 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_One_iteration); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 12 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Initial_communication_with_stakeholders)
+; 
+      element[ 1 ]=  new Atomic_producer(Event_Initial_requirements); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Initial_design); 
+      element[ 3 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+      element[ 4 ]=  new Itr_9_10 ; 
+      element[ 5 ]=  new Atomic_producer(Event_Stakeholders_are_satisfied); 
+      element[ 6 ]=  new Atomic_producer(Event_Delivery_of_the_system); 
+    } 
+};// end class Sq_11_12 
+
+//---- 13 ---- 
+class Opt_33_34 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_33_34 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Architecture_redesign); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_33_34 
+
+//---- 14 ---- 
+class Sq_35_36 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_35_36 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Adjust_requirements); 
+      element[ 1 ]=  new Opt_33_34 ; 
+      element[ 2 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+    } 
+};// end class Sq_35_36 
+
+//---- 15 ---- 
+class Itr_37_38 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_37_38 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_37_38 
+
+//---- 16 ---- 
+class Sq_39_40 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_39_40 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Initial_communication_with_stakeholders)
+; 
+      element[ 1 ]=  new Atomic_producer(Event_Initial_requirements); 
+      element[ 2 ]=  new Atomic_producer(Event_Architecture_design); 
+      element[ 3 ]=  new Atomic_producer(Event_Prototype_demonstration_to_stakeholders)
+; 
+      element[ 4 ]=  new Itr_37_38 ; 
+    } 
+};// end class Sq_39_40 
+
+//---- 17 ---- 
+class Sq_47_48 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_47_48 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Detailed_redesign); 
+      element[ 1 ]=  new Atomic_producer(Event_Coding); 
+      element[ 2 ]=  new Atomic_producer(Event_Testing); 
+    } 
+};// end class Sq_47_48 
+
+//---- 18 ---- 
+class Itr_49_50 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_49_50 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_47_48 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_49_50 
+
+//---- 19 ---- 
+class Sq_51_52 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_51_52 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Detailed_design); 
+      element[ 1 ]=  new Atomic_producer(Event_Coding); 
+      element[ 2 ]=  new Atomic_producer(Event_Testing); 
+      element[ 3 ]=  new Itr_49_50 ; 
+    } 
+};// end class Sq_51_52 
+
+//---- 20 ---- 
+class Comp_17_18 : public Composite_producer { 
+public: // constructor 
+    Comp_17_18 (): Composite_producer(Event_One_iteration){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_15_16 ; 
+    } 
+};// end class Comp_17_18 
+
+//---- 21 ---- 
+class Comp_21_22 : public Composite_producer { 
+public: // constructor 
+    Comp_21_22 (): Composite_producer(Event_Initial_design){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_19_20 ; 
+    } 
+};// end class Comp_21_22 
+
+//---- 22 ---- 
+class Comp_27_28 : public Composite_producer { 
+public: // constructor 
+    Comp_27_28 (): Composite_producer(Event_Redesign){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_25_26 ; 
+    } 
+};// end class Comp_27_28 
+
+//---- 23 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_Stakeholders){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 24 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_Spiral_process){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 25 ---- 
+class Comp_41_42 : public Composite_producer { 
+public: // constructor 
+    Comp_41_42 (): Composite_producer(Event_Architect){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_39_40 ; 
+    } 
+};// end class Comp_41_42 
+
+//---- 26 ---- 
+class Comp_53_54 : public Composite_producer { 
+public: // constructor 
+    Comp_53_54 (): Composite_producer(Event_Developers){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_51_52 ; 
+    } 
+};// end class Comp_53_54 
+
+//---- 27 ---- 
+class SCHEMA_spiral: public Composite_producer {
+public: // constructor 
+    SCHEMA_spiral(): Composite_producer(Event_spiral){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_Stakeholders);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Spiral_process);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_31_32_ob(Event_SIMPLE_LIST_31_32);
+      element[3]= new Composite_secondary_producer(Event_Architect);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_45_46_ob(Event_SIMPLE_LIST_45_46);
+      element[5]= new Composite_secondary_producer(Event_Developers);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_57_58_ob(Event_SIMPLE_LIST_57_58);
+    } 
+};// end class SCHEMA_spiral
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example16_software_spiral_process.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_27_28 temp_28; temp_28.harvest();
+    Comp_17_18 temp_29; temp_29.harvest();
+    Comp_21_22 temp_30; temp_30.harvest();
+   // harvesting traces for ROOT events 
+    Comp_7_8 temp_31; temp_31.harvest();
+    Comp_13_14 temp_32; temp_32.harvest();
+    Comp_41_42 temp_33; temp_33.harvest();
+    Comp_53_54 temp_34; temp_34.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_spiral temp_35; temp_35.harvest();
+   temp_35.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"spiral"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.mp
new file mode 100644
index 0000000..f8d2142
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.mp
@@ -0,0 +1,82 @@
+/* 	Example 16, model of the spiral software process
+    
+    This example also illustrates how Melvin Conway's law 
+    can be modeled in MP: "organizations which design systems ... 
+    are constrained to produce designs which are copies of the 
+    communication structures of these organizations."
+
+    run scope up to 5
+======================================*/
+
+SCHEMA spiral
+
+ROOT Stakeholders:
+	Initial_communication_with_stakeholders
+	Prototype_demonstration_to_stakeholders
+	(* 	Stakeholders_are_not_satisfied
+    	Prototype_demonstration_to_stakeholders *)
+	Stakeholders_are_satisfied;
+
+ROOT Spiral_process: 
+		Initial_communication_with_stakeholders
+		Initial_requirements
+		Initial_design
+		Prototype_demonstration_to_stakeholders
+		(* One_iteration *)
+		Stakeholders_are_satisfied
+		Delivery_of_the_system;
+
+One_iteration: 
+		Stakeholders_are_not_satisfied
+		Adjust_requirements
+		Redesign
+		Prototype_demonstration_to_stakeholders;
+
+Initial_design:
+		Architecture_design
+		Detailed_design
+		Coding
+		Testing;
+
+Redesign:
+		[ Architecture_redesign ] /* not always needed */
+		Detailed_redesign
+		Coding
+		Testing;
+
+Stakeholders, Spiral_process SHARE ALL 	
+	Initial_communication_with_stakeholders,
+	Prototype_demonstration_to_stakeholders,
+	Stakeholders_are_not_satisfied, 
+	Stakeholders_are_satisfied;
+
+ROOT Architect:
+	Initial_communication_with_stakeholders
+	Initial_requirements
+	Architecture_design
+	Prototype_demonstration_to_stakeholders
+	(* 	Adjust_requirements
+    	[ Architecture_redesign ] 
+    	Prototype_demonstration_to_stakeholders *);
+
+Architect, Spiral_process SHARE ALL 
+	Initial_communication_with_stakeholders,
+	Initial_requirements,
+	Architecture_design,
+	Prototype_demonstration_to_stakeholders,
+	Adjust_requirements,
+    Architecture_redesign;
+    	 
+ROOT Developers:
+		Detailed_design
+		Coding
+		Testing
+		(* 	Detailed_redesign
+            Coding
+			Testing 	*);
+
+Developers, Spiral_process SHARE ALL
+			Detailed_design,
+			Detailed_redesign,
+            Coding,
+			Testing;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp.txt
new file mode 100644
index 0000000..9c4b0de
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example16_software_spiral_process tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.tree
new file mode 100644
index 0000000000000000000000000000000000000000..59199f82c28aa5d11fbc9444c3d4621792a0e23e
GIT binary patch
literal 11264
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.txt
new file mode 100644
index 0000000..2bb0a60
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example16_software_spiral_process.txt
@@ -0,0 +1,26 @@
+generating traces for scope 1 
+completed Redesign: 	2 traces (0 MARKed) 	9 events 
+		average 4.5 ev/trace 	min 4 	max 5
+
+completed One_iteration: 	2 traces (0 MARKed) 	17 events 
+		average 8.5 ev/trace 	min 8 	max 9
+
+completed Initial_design: 	1 traces (0 MARKed) 	5 events 
+
+completed Stakeholders: 	2 traces (0 MARKed) 	10 events 
+		average 5 ev/trace 	min 4 	max 6
+
+completed Spiral_process: 	3 traces (0 MARKed) 	50 events 
+		average 16.6667 ev/trace 	min 11 	max 20
+
+completed Architect: 	3 traces (0 MARKed) 	20 events 
+		average 6.66667 ev/trace 	min 5 	max 8
+
+completed Developers: 	2 traces (0 MARKed) 	11 events 
+		average 5.5 ev/trace 	min 4 	max 7
+
+completed spiral: 	3 traces (0 MARKed) 	107 events 
+		average 35.6667 ev/trace 	min 25 	max 42
+
+Elapsed time 0.021699 sec, Speed: 10553.5 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.cpp
new file mode 100644
index 0000000..5471951
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.cpp
@@ -0,0 +1,881 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Dining_Philosophers trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_think
+    , Event_left_fork
+    , Event_right_fork
+       // composite events 
+    , Event_Philosopher
+    , Event_eat
+    , Event_Fork
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_29_30
+    , Event_SIMPLE_LIST_75_76
+       // ADD operations 
+       // ROOT events 
+    , Event_Philosophers
+    , Event_Forks
+       // main schema event 
+    , Event_Dining_Philosophers }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "think"
+     , "left_fork"
+     , "right_fork"
+     , "Philosopher"
+     , "eat"
+     , "Fork"
+     , "SIMPLE_LIST_29_30"
+     , "SIMPLE_LIST_75_76"
+     , "Philosophers"
+     , "Forks"
+     , "Dining_Philosophers" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_59_60 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 2 ---- 
+bool Event_comparison_expr_61_62 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 3 ---- 
+int special_function_23(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_left_fork){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_24(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_right_fork){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_43_44(Coordinate * current_host, int e1_variable, int e2_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int f1_variable;
+     int pivot_f1_variable = e1_variable ; 
+     int f2_variable;
+     int pivot_f2_variable = e2_variable ; 
+
+     // loop 1 for f1_variable 
+     for( f1_variable = 0; f1_variable < len; f1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ f1_variable  * len +  pivot_f1_variable 
+]) && 
+           (   
+            (Stack[f1_variable]-> name == Event_left_fork) || 
+            (Stack[f1_variable]-> name == Event_right_fork)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for f2_variable 
+     for( f2_variable = 0; f2_variable < len; f2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ f2_variable  * len +  pivot_f2_variable 
+]) && 
+           (   
+            (Stack[f2_variable]-> name == Event_left_fork) || 
+            (Stack[f2_variable]-> name == Event_right_fork)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( find_pair_in_table( f2_variable , f1_variable ,	Follows) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 6 ---- 
+class SIMPLE_LIST_29_30_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_29_30_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( special_function_23(current_host, Root_table[Event_Fork])> 0 )&& ( special_function_24(current_host, Root_table[Event_Fork])
+> 0 ))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_29_30_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_75_76_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_75_76_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int p1_variable; // thread variable
+  vector<int> p1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int p2_variable; // thread variable
+  vector<int> p2_variable_list; // list of coordinated events
+  int f_variable; // thread variable
+  vector<int> f_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for p1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p1_variable = i; 
+      if( p1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Philosopher))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p1_variable_list.begin(); s != p1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source p1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p1_variable_list.size();
+  if(thread_length != p1_variable_list.size()) throw failed;
+
+  // preparing thread for p2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p2_variable = i; 
+      if( p2_variable_list.size() == thread_length){
+         p1_variable = 0; } 
+      else{ 
+         p1_variable = p1_variable_list[p2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Philosopher))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p2_variable_list.begin(); s != p2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p2_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SHIFT_LEFT reshuffling 
+  if(p2_variable_list.size() > 0) 
+    rotate(p2_variable_list.begin(), p2_variable_list.begin() + 1, p2_variable_list.end());
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p2_variable_list.size();
+  if(thread_length != p2_variable_list.size()) throw failed;
+
+  // preparing thread for f_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      f_variable = i; 
+      if( f_variable_list.size() == thread_length){
+         p1_variable = 0; 
+         p2_variable = 0; } 
+      else{ 
+         p1_variable = p1_variable_list[f_variable_list.size()];
+         p2_variable = p2_variable_list[f_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Fork))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = f_variable_list.begin(); s != f_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) f_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source f_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = f_variable_list.size();
+  if(thread_length != f_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    p1_variable= p1_variable_list[i];
+    p2_variable= p2_variable_list[i];
+    f_variable= f_variable_list[i];
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+   // lists of shared events for  p1_variable 
+  vector<int> p1_variable_right_fork_list;
+   // lists of shared events for  f_variable 
+  vector<int> f_variable_right_fork_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + p1_variable ]){ 
+     if( Stack[i]->name == Event_right_fork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  p1_variable_right_fork_list.begin();
+          s != p1_variable_right_fork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) p1_variable_right_fork_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + f_variable ]){ 
+     if( Stack[i]->name == Event_right_fork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  f_variable_right_fork_list.begin();
+          s != f_variable_right_fork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) f_variable_right_fork_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = f_variable_right_fork_list.size();
+     if(p1_variable_right_fork_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = f_variable_right_fork_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(p1_variable_right_fork_list[i], f_variable_right_fork_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+   // lists of shared events for  p2_variable 
+  vector<int> p2_variable_left_fork_list;
+   // lists of shared events for  f_variable 
+  vector<int> f_variable_left_fork_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + p2_variable ]){ 
+     if( Stack[i]->name == Event_left_fork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  p2_variable_left_fork_list.begin();
+          s != p2_variable_left_fork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) p2_variable_left_fork_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + f_variable ]){ 
+     if( Stack[i]->name == Event_left_fork ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  f_variable_left_fork_list.begin();
+          s != f_variable_left_fork_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) f_variable_left_fork_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = f_variable_left_fork_list.size();
+     if(p2_variable_left_fork_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = f_variable_left_fork_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(p2_variable_left_fork_list[i], f_variable_left_fork_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e1_variable; // thread variable
+  vector<int> e1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e1_variable = i; 
+      if( e1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_eat))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e1_variable_list.begin(); s != e1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e1_variable_list.size();
+  if(thread_length != e1_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e1_variable= e1_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e2_variable; // thread variable
+  vector<int> e2_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e2_variable = i; 
+      if( e2_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_eat))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e2_variable_list.begin(); s != e2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e2_variable_list.size();
+  if(thread_length != e2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e2_variable= e2_variable_list[i];
+   if( Quantified_expr_43_44(current_host, e1_variable, e2_variable) ){ 
+    // ADD operation 
+    Follows.insert(pair<int, int>(e2_variable,e1_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e_variable; // thread variable
+  vector<int> e_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e_variable = i; 
+      if( e_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_eat))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e_variable_list.begin(); s != e_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e_variable_list.size();
+  if(thread_length != e_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e_variable= e_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int l_variable; // thread variable
+  vector<int> l_variable_list; // list of coordinated events
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for l_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      l_variable = i; 
+      if( l_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  e_variable ]){ 
+       if( (  (Stack[i]->name == Event_left_fork))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = l_variable_list.begin(); s != l_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) l_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source l_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = l_variable_list.size();
+  if(thread_length != l_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         l_variable = 0; } 
+      else{ 
+         l_variable = l_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  e_variable ]){ 
+       if( (  (Stack[i]->name == Event_right_fork))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    l_variable= l_variable_list[i];
+    r_variable= r_variable_list[i];
+   if( ! ( Event_comparison_expr_59_60 (current_host, l_variable , r_variable ) 
+|| Event_comparison_expr_61_62 (current_host, r_variable , l_variable ) )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_75_76_ob class
+
+//---- 8 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_think); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_eat); 
+    } 
+};// end class Sq_5_6 
+
+//---- 9 ---- 
+class Set_11_12 : public SET_node_producer_container { 
+public: // constructor 
+    Set_11_12 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_left_fork); 
+      element[ 1 ]=  new Atomic_producer(Event_right_fork); 
+    } 
+};// end class Set_11_12 
+
+//---- 10 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_left_fork); 
+      element[ 1 ]=  new Atomic_producer(Event_right_fork); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 11 ---- 
+class Ct_77_78 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_77_78 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_19_20 ; 
+      element[ 1 ]=  new Alt_19_20 ; 
+    } 
+};// end class Ct_77_78 
+
+//---- 12 ---- 
+class Ct_79_80 : public SET_node_producer_container { 
+public: // constructor 
+    Ct_79_80 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Philosopher); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Philosopher); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Philosopher); 
+    } 
+};// end class Ct_79_80 
+
+//---- 13 ---- 
+class Ct_81_82 : public SET_node_producer_container { 
+public: // constructor 
+    Ct_81_82 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Fork); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Fork); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Fork); 
+    } 
+};// end class Ct_81_82 
+
+//---- 14 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Philosopher){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 15 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_eat){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Set_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 16 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_Fork){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Ct_77_78 ; 
+      element[ 1 ]=  new SIMPLE_LIST_29_30_ob(Event_SIMPLE_LIST_29_30); 
+    } 
+};// end class Comp_31_32 
+
+//---- 17 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Philosophers){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Ct_79_80 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 18 ---- 
+class Comp_17_18 : public Composite_producer { 
+public: // constructor 
+    Comp_17_18 (): Composite_producer(Event_Forks){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Ct_81_82 ; 
+    } 
+};// end class Comp_17_18 
+
+//---- 19 ---- 
+class SCHEMA_Dining_Philosophers: public Composite_producer {
+public: // constructor 
+    SCHEMA_Dining_Philosophers(): Composite_producer(Event_Dining_Philosophers){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Philosophers);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Forks);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_75_76_ob(Event_SIMPLE_LIST_75_76);
+    } 
+};// end class SCHEMA_Dining_Philosophers
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example17_Dining_Philosophers.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_13_14 temp_20; temp_20.harvest();
+    Comp_9_10 temp_21; temp_21.harvest();
+    Comp_31_32 temp_22; temp_22.harvest();
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_23; temp_23.harvest();
+    Comp_17_18 temp_24; temp_24.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Dining_Philosophers temp_25; temp_25.harvest();
+   temp_25.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Dining_Philosophers"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.mp
new file mode 100644
index 0000000..6a2330a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.mp
@@ -0,0 +1,90 @@
+/* Example 17, Dining_Philosophers.mp
+Five silent philosophers sit at a table around a bowl of spaghetti. 
+A fork is placed between each pair of adjacent philosophers. 
+It was originally formulated in 1965 by Edsger Dijkstra.
+
+Each philosopher must alternately think and eat. However, a philosopher 
+can only eat spaghetti when he has both left and right forks. 
+Each fork can be held by one philosopher only and so a philosopher can use 
+the fork only if it's not being used by another philosopher. 
+After he finishes eating, he needs to put down both forks so they become 
+available to others. A philosopher can grab the fork on his right or 
+the one on his left as they become available, but can't start eating 
+before getting both of them.
+
+Eating is not limited by the amount of spaghetti left: assume an infinite 
+supply. The problem is how to design a discipline of behavior (a concurrent 
+algorithm) such that each philosopher won't starve; i.e., can forever 
+continue to alternate between eating and thinking assuming that any 
+philosopher cannot know when others may want to eat or think. 
+(from Wikipedia: http://en.wikipedia.org/wiki/Dining_philosophers_problem )
+
+This MP model provides abstract specification of correct 
+behaviors, but does not provide implementation details. 
+Since MP supports automated use case extraction, this model may be used 
+as a source of test cases for testing the implementation.
+
+scope 1 yields zero traces, because Philosopher cannot eat with a single fork.
+scope 2 yields 2 traces  in approx. 0.01 sec.
+scope 3 yields 6 traces  in approx. 0.05 sec.
+scope 4 yields 14 traces in approx. 0.44 sec.
+scope 5 yields 30 traces in approx. 1.6 sec.
+
+============================================================================*/
+SCHEMA Dining_Philosophers
+
+ROOT Philosophers: {+<$$scope> 	Philosopher +};
+
+Philosopher: 	(+ <1> think    eat   +)
+/* Philosopher eats at least once, but is limited to reduce the number of traces */ ;
+
+eat: { left_fork, right_fork };
+
+ROOT Forks: {+ <$$scope>  Fork +};
+
+Fork: (* <2> (left_fork | right_fork) *)
+/* limit the number of fork use to reduce the number of traces,
+    this in fact limits each Philosopher to one "eat" event */
+
+/* Each fork is used at least once by each neighbor */
+BUILD{ ENSURE #left_fork > 0 AND #right_fork > 0;}; 
+
+/*  Assign forks to the Philosophers.
+    Philosophers $p1 and $p2 share fork $f.
+
+    Shift_left reshuffling takes the first event 
+    from the beginning and puts it to the end of sequence.
+        This adjusted thread is used to produce the ring topology,
+    and to assign two neighbors $p1 and $p2 for sharing fork $f  */
+
+COORDINATE          $p1: Philosopher,
+    <SHIFT_LEFT>    $p2: Philosopher,
+                    $f:  Fork 
+DO  /*  Default sequence is adequate here: 
+    the order of fork use in Philosopher and in Fork are the same. */
+	$p1, $f SHARE ALL right_fork;
+	$p2, $f SHARE ALL left_fork;
+OD;
+
+/* to avoid deadlocks 'eat' events competing for resources are put in order. */
+COORDINATE 		$e1: eat
+DO 	COORDINATE 	$e2: eat 
+    DO
+        IF EXISTS	$f1: (left_fork | right_fork) FROM $e1,
+                    $f2: (left_fork | right_fork) FROM $e2
+                    ($f1 PRECEDES $f2) 
+        THEN
+                ADD $e1 PRECEDES $e2;
+        FI;
+    OD;
+OD;
+
+/* Ensure that both forks can be used simultaneously */
+COORDINATE 		$e: eat
+DO 	COORDINATE 	$l: left_fork  FROM $e,
+                $r: right_fork FROM $e
+    DO
+    /* MAY_OVERLAP $x $y is an abbreviation for NOT($x BEFORE $y OR $y BEFORE $x) */
+        ENSURE MAY_OVERLAP $l $r;
+    OD;
+OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp.txt
new file mode 100644
index 0000000..402da51
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example17_Dining_Philosophers tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.tree
new file mode 100644
index 0000000000000000000000000000000000000000..a1a5dcd99dae934f1b30f772df3dcaff411c088e
GIT binary patch
literal 12800
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
WG)&6Kr~{&mi~oQ88_oZn@&6yxZvpiH

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.txt
new file mode 100644
index 0000000..d8fc0f0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example17_Dining_Philosophers.txt
@@ -0,0 +1,18 @@
+generating traces for scope 3 
+completed eat: 	1 traces (0 MARKed) 	3 events 
+
+completed Philosopher: 	1 traces (0 MARKed) 	5 events 
+
+completed Fork: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 3 	max 3
+
+completed Philosophers: 	1 traces (0 MARKed) 	16 events 
+
+completed Forks: 	8 traces (0 MARKed) 	80 events 
+		average 10 ev/trace 	min 10 	max 10
+
+completed Dining_Philosophers: 	6 traces (0 MARKed) 	162 events 
+		average 27 ev/trace 	min 27 	max 27
+
+Elapsed time 0.050227 sec, Speed: 5415.41 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.cpp
new file mode 100644
index 0000000..1a618cc
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.cpp
@@ -0,0 +1,458 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Cardiac_Arrest trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_check_breathing
+    , Event_finish_first
+    , Event_check_pulse
+    , Event_identify_the_patient
+    , Event_record_assessment_findings
+    , Event_identify_the_priority
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_16_17
+    , Event_SIMPLE_LIST_30_31
+       // ADD operations 
+       // ROOT events 
+    , Event_Phase1
+    , Event_Triage
+       // main schema event 
+    , Event_Cardiac_Arrest }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "check_breathing"
+     , "finish_first"
+     , "check_pulse"
+     , "identify_the_patient"
+     , "record_assessment_findings"
+     , "identify_the_priority"
+     , "SIMPLE_LIST_16_17"
+     , "SIMPLE_LIST_30_31"
+     , "Phase1"
+     , "Triage"
+     , "Cardiac_Arrest" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_11(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish_first){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 2 ---- 
+class SIMPLE_LIST_16_17_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_16_17_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_11(current_host, Root_table[Event_Phase1])== 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_16_17_ob class
+
+//---- 3 ---- 
+class SIMPLE_LIST_30_31_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_30_31_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_finish_first))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_identify_the_patient))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_30_31_ob class
+
+//---- 4 ---- 
+class Opt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_finish_first); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_1_2 
+
+//---- 5 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_check_breathing); 
+      element[ 1 ]=  new Opt_1_2 ; 
+    } 
+};// end class Sq_3_4 
+
+//---- 6 ---- 
+class Opt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_finish_first); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_5_6 
+
+//---- 7 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_check_pulse); 
+      element[ 1 ]=  new Opt_5_6 ; 
+    } 
+};// end class Sq_7_8 
+
+//---- 8 ---- 
+class Set_9_10 : public SET_node_producer_container { 
+public: // constructor 
+    Set_9_10 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_3_4 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+    } 
+};// end class Set_9_10 
+
+//---- 9 ---- 
+class Sq_20_21 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_20_21 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_identify_the_patient); 
+      element[ 1 ]=  new Atomic_producer(Event_record_assessment_findings); 
+      element[ 2 ]=  new Atomic_producer(Event_identify_the_priority); 
+    } 
+};// end class Sq_20_21 
+
+//---- 10 ---- 
+class Comp_18_19 : public Composite_producer { 
+public: // constructor 
+    Comp_18_19 (): Composite_producer(Event_Phase1){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Set_9_10 ; 
+      element[ 1 ]=  new SIMPLE_LIST_16_17_ob(Event_SIMPLE_LIST_16_17); 
+    } 
+};// end class Comp_18_19 
+
+//---- 11 ---- 
+class Comp_22_23 : public Composite_producer { 
+public: // constructor 
+    Comp_22_23 (): Composite_producer(Event_Triage){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_20_21 ; 
+    } 
+};// end class Comp_22_23 
+
+//---- 12 ---- 
+class SCHEMA_Cardiac_Arrest: public Composite_producer {
+public: // constructor 
+    SCHEMA_Cardiac_Arrest(): Composite_producer(Event_Cardiac_Arrest){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Phase1);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Triage);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_30_31_ob(Event_SIMPLE_LIST_30_31);
+    } 
+};// end class SCHEMA_Cardiac_Arrest
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example18_Workflow_pattern.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_18_19 temp_13; temp_13.harvest();
+    Comp_22_23 temp_14; temp_14.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Cardiac_Arrest temp_15; temp_15.harvest();
+   temp_15.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Cardiac_Arrest"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.mp
new file mode 100644
index 0000000..6c3b960
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.mp
@@ -0,0 +1,30 @@
+/* Example18 Workflow pattern
+
+the web site
+http://workflowpatterns.com/patterns/control/index.php
+contains a collection of workflow patterns specified with Petri nets.
+
+Pattern 9 (Structured Discriminator)
+http://workflowpatterns.com/patterns/control/advanced_branching/wcp9.php
+
+When handling a cardiac arrest, the check_breathing and check_pulse tasks 
+run in parallel. Once the first of these has completed, the triage task 
+is commenced. Completion of the other task is ignored and does not result 
+in a second instance of the triage task.
+
+run for scope 1
+*/
+
+SCHEMA Cardiac_Arrest
+
+ROOT Phase1: {  check_breathing [finish_first], 
+                check_pulse 	[finish_first]   }
+
+BUILD{ ENSURE #finish_first == 1; };
+
+ROOT Triage:    identify_the_patient
+                record_assessment_findings
+                identify_the_priority;
+
+COORDINATE $a: finish_first, $b: identify_the_patient
+    DO ADD $a PRECEDES $b; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp.txt
new file mode 100644
index 0000000..54fd25c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example18_Workflow_pattern tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.tree
new file mode 100644
index 0000000000000000000000000000000000000000..f5aa204f1fe4ab073b2fde2b9772f47fbf93068b
GIT binary patch
literal 5632
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
KTm7G`|Gxn%-6>xH

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.txt
new file mode 100644
index 0000000..0d57835
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example18_Workflow_pattern.txt
@@ -0,0 +1,11 @@
+generating traces for scope 3 
+completed Phase1: 	2 traces (0 MARKed) 	8 events 
+		average 4 ev/trace 	min 4 	max 4
+
+completed Triage: 	1 traces (0 MARKed) 	4 events 
+
+completed Cardiac_Arrest: 	2 traces (0 MARKed) 	18 events 
+		average 9 ev/trace 	min 9 	max 9
+
+Elapsed time 0.000312 sec, Speed: 96153.8 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.cpp
new file mode 100644
index 0000000..b6bd6fe
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.cpp
@@ -0,0 +1,1433 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Suppliers trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list related_to_UDR_set;
+       pair_list Is_supplier_for_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+       char * related_to_UDR_matrix = 0;
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    related_to_UDR_set.clear();
+    Is_supplier_for_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!related_to_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("related_to",related_to_UDR_set));
+  if(!Is_supplier_for_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("Is_supplier_for",Is_supplier_for_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "related_to"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         related_to_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+    else 
+    if(p1->first == "Is_supplier_for"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         Is_supplier_for_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  related_to_UDR_set 
+  temp_list.clear(); 
+   for(p = related_to_UDR_set.begin(); p != related_to_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   related_to_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Is_supplier_for_UDR_set 
+  temp_list.clear(); 
+   for(p = Is_supplier_for_UDR_set.begin(); p != Is_supplier_for_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Is_supplier_for_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from related_to_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = related_to_UDR_set.begin(); p != related_to_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  related_to_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // merging from Is_supplier_for_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = Is_supplier_for_UDR_set.begin(); p != Is_supplier_for_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  Is_supplier_for_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Request_delivery
+    , Event_Receive_supply
+    , Event_Not_available
+    , Event_Receive_order_and_buy
+    , Event_Sell
+       // composite events 
+    , Event_Consumer
+    , Event_Producer
+       // top coordination operations 
+    , Event_Coordinate_23_24
+    , Event_Coordinate_41_42
+    , Event_Coordinate_49_50
+    , Event_Coordinate_75_76
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_107_108
+       // ADD operations 
+       // ROOT events 
+    , Event_Consumers
+    , Event_Supply_Office
+    , Event_Producers
+       // main schema event 
+    , Event_Suppliers }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Request_delivery"
+     , "Receive_supply"
+     , "Not_available"
+     , "Receive_order_and_buy"
+     , "Sell"
+     , "Consumer"
+     , "Producer"
+     , "Coordinate_23_24"
+     , "Coordinate_41_42"
+     , "Coordinate_49_50"
+     , "Coordinate_75_76"
+     , "SIMPLE_LIST_107_108"
+     , "Consumers"
+     , "Supply_Office"
+     , "Producers"
+     , "Suppliers" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_53_54 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 2 ---- 
+bool Quantified_expr_55_56(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int request_variable;
+     int pivot_request_variable = 0; 
+     int receive_variable;
+     int pivot_receive_variable = 0; 
+
+     // loop 1 for request_variable 
+     for( request_variable = 0; request_variable < len; request_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ request_variable  * len +  
+pivot_request_variable ]) && 
+           (   
+            (Stack[request_variable]-> name == Event_Request_delivery)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for receive_variable 
+     for( receive_variable = 0; receive_variable < len; receive_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ receive_variable  * len +  
+pivot_receive_variable ]) && 
+           (   
+            (Stack[receive_variable]-> name == Event_Receive_supply)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( (!  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[request_variable * Stack.size() + receive_variable])
+|| Event_comparison_expr_53_54 (current_host, request_variable , 
+receive_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 3 ---- 
+bool Quantified_expr_65_66(Coordinate * current_host, int c1_variable, int c2_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 3 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int request_variable;
+     int pivot_request_variable = c1_variable ; 
+     int receive_variable;
+     int pivot_receive_variable = c2_variable ; 
+     int order_variable;
+     int pivot_order_variable = Root_table[Event_Supply_Office];
+
+     // loop 1 for request_variable 
+     for( request_variable = 0; request_variable < len; request_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ request_variable  * len +  
+pivot_request_variable ]) && 
+           (   
+            (Stack[request_variable]-> name == Event_Request_delivery)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for receive_variable 
+     for( receive_variable = 0; receive_variable < len; receive_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ receive_variable  * len +  
+pivot_receive_variable ]) && 
+           (   
+            (Stack[receive_variable]-> name == Event_Receive_supply)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+     // loop 3 for order_variable 
+     for( order_variable = 0; order_variable < len; order_variable ++){ 
+       // selection condition for 3 FROM 
+       if( (current_host-> in_matrix [ order_variable  * len +  
+pivot_order_variable ]) && 
+           (   
+            (Stack[order_variable]-> name == Event_Receive_order_and_buy)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 3 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( (  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[request_variable * Stack.size() + order_variable])
+&&  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[order_variable * Stack.size() + receive_variable]))
+) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 3 
+     }; // end for loop 3 
+
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 4 ---- 
+bool Quantified_expr_67_68(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier EXISTS DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int c1_variable;
+     int pivot_c1_variable = 0; 
+     int c2_variable;
+     int pivot_c2_variable = 0; 
+
+     // loop 1 for c1_variable 
+     for( c1_variable = 0; c1_variable < len; c1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ c1_variable  * len +  pivot_c1_variable 
+]) && 
+           (   
+            (Stack[c1_variable]-> name == Event_Consumer)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for c2_variable 
+     for( c2_variable = 0; c2_variable < len; c2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ c2_variable  * len +  pivot_c2_variable 
+]) && 
+           (   
+            (Stack[c2_variable]-> name == Event_Consumer)   ) 
+           // checking DISJ 
+           &&  c2_variable  !=  c1_variable 
+           && !(current_host-> eq_matrix[ c2_variable * len + c1_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( Quantified_expr_65_66(current_host, c1_variable, c2_variable) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_81_82(Coordinate * current_host, int c1_variable, int c2_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 3 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int request_variable;
+     int pivot_request_variable = c1_variable ; 
+     int receive_variable;
+     int pivot_receive_variable = c2_variable ; 
+     int order_variable;
+     int pivot_order_variable = Root_table[Event_Supply_Office];
+
+     // loop 1 for request_variable 
+     for( request_variable = 0; request_variable < len; request_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ request_variable  * len +  
+pivot_request_variable ]) && 
+           (   
+            (Stack[request_variable]-> name == Event_Request_delivery)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for receive_variable 
+     for( receive_variable = 0; receive_variable < len; receive_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ receive_variable  * len +  
+pivot_receive_variable ]) && 
+           (   
+            (Stack[receive_variable]-> name == Event_Not_available)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+     // loop 3 for order_variable 
+     for( order_variable = 0; order_variable < len; order_variable ++){ 
+       // selection condition for 3 FROM 
+       if( (current_host-> in_matrix [ order_variable  * len +  
+pivot_order_variable ]) && 
+           (   
+            (Stack[order_variable]-> name == Event_Receive_order_and_buy)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 3 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( (  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[request_variable * Stack.size() + order_variable])
+&&  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[order_variable * Stack.size() + receive_variable]))
+) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 3 
+     }; // end for loop 3 
+
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 6 ---- 
+bool Quantified_expr_83_84(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier EXISTS DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int c1_variable;
+     int pivot_c1_variable = 0; 
+     int c2_variable;
+     int pivot_c2_variable = 0; 
+
+     // loop 1 for c1_variable 
+     for( c1_variable = 0; c1_variable < len; c1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ c1_variable  * len +  pivot_c1_variable 
+]) && 
+           (   
+            (Stack[c1_variable]-> name == Event_Consumer)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for c2_variable 
+     for( c2_variable = 0; c2_variable < len; c2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ c2_variable  * len +  pivot_c2_variable 
+]) && 
+           (   
+            (Stack[c2_variable]-> name == Event_Consumer)   ) 
+           // checking DISJ 
+           &&  c2_variable  !=  c1_variable 
+           && !(current_host-> eq_matrix[ c2_variable * len + c1_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( Quantified_expr_81_82(current_host, c1_variable, c2_variable) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 7 ---- 
+bool Quantified_expr_91_92(Coordinate * current_host, int c_variable, int p_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int request_variable;
+     int pivot_request_variable = c_variable ; 
+     int sell_variable;
+     int pivot_sell_variable = p_variable ; 
+
+     // loop 1 for request_variable 
+     for( request_variable = 0; request_variable < len; request_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ request_variable  * len +  
+pivot_request_variable ]) && 
+           (   
+            (Stack[request_variable]-> name == Event_Request_delivery)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for sell_variable 
+     for( sell_variable = 0; sell_variable < len; sell_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ sell_variable  * len +  
+pivot_sell_variable ]) && 
+           (   
+            (Stack[sell_variable]-> name == Event_Sell)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if(  ( create_UDR_matrix(current_host, related_to_UDR_matrix, related_to_UDR_set), 
+          related_to_UDR_matrix[request_variable * Stack.size() + sell_variable])
+) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 8 ---- 
+class SIMPLE_LIST_107_108_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_107_108_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ! Quantified_expr_83_84(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int c_variable; // thread variable
+  vector<int> c_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for c_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      c_variable = i; 
+      if( c_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Consumer))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = c_variable_list.begin(); s != c_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) c_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source c_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = c_variable_list.size();
+  if(thread_length != c_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    c_variable= c_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int p_variable; // thread variable
+  vector<int> p_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for p_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p_variable = i; 
+      if( p_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Producer))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p_variable_list.begin(); s != p_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source p_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p_variable_list.size();
+  if(thread_length != p_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    p_variable= p_variable_list[i];
+   if( Quantified_expr_91_92(current_host, c_variable, p_variable) ){ 
+    // ADD operation 
+    Is_supplier_for_UDR_set.insert(pair<int, int>(p_variable,c_variable));
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_107_108_ob class
+
+//---- 9 ---- 
+class Coordinate_23_24_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_23_24_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int request_variable; // thread variable
+  vector<int> request_variable_list; // list of coordinated events
+  int  Consumers_source = Root_table[Event_Consumers]; // source of coordination
+ 
+  int receive_request_variable; // thread variable
+  vector<int> receive_request_variable_list; // list of coordinated events
+  int  Supply_Office_source = Root_table[Event_Supply_Office]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for request_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      request_variable = i; 
+      if( request_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Consumers_source ]){ 
+       if( (  (Stack[i]->name == Event_Request_delivery))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = request_variable_list.begin(); s != request_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) request_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( request_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far request_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = request_variable_list.size();
+  if(thread_length != request_variable_list.size()) throw failed;
+
+  // preparing thread for receive_request_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      receive_request_variable = i; 
+      if( receive_request_variable_list.size() == thread_length){
+         request_variable = 0; } 
+      else{ 
+         request_variable = request_variable_list[receive_request_variable_list.size()];
+}; 
+      if(in_matrix[i * len +  Supply_Office_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_order_and_buy))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = receive_request_variable_list.begin(); s != receive_request_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) receive_request_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source receive_request_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = receive_request_variable_list.size();
+  if(thread_length != receive_request_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    request_variable= request_variable_list[i];
+    receive_request_variable= receive_request_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(receive_request_variable,request_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    related_to_UDR_set.insert(pair<int, int>(request_variable,receive_request_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_23_24_ob class
+
+//---- 10 ---- 
+class Coordinate_41_42_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_41_42_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int receive_order_variable; // thread variable
+  vector<int> receive_order_variable_list; // list of coordinated events
+  int  Supply_Office_source = Root_table[Event_Supply_Office]
+; // source of coordination 
+  int sell_variable; // thread variable
+  vector<int> sell_variable_list; // list of coordinated events
+  int  Producers_source = Root_table[Event_Producers]; // source of coordination
+ 
+
+  // create lists of coordinated events 
+  // preparing thread for receive_order_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      receive_order_variable = i; 
+      if( receive_order_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Supply_Office_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_order_and_buy))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = receive_order_variable_list.begin(); s != receive_order_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) receive_order_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source receive_order_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = receive_order_variable_list.size();
+  if(thread_length != receive_order_variable_list.size()) throw failed;
+
+  // preparing thread for sell_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      sell_variable = i; 
+      if( sell_variable_list.size() == thread_length){
+         receive_order_variable = 0; } 
+      else{ 
+         receive_order_variable = receive_order_variable_list[sell_variable_list.size()];
+}; 
+      if(in_matrix[i * len +  Producers_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell)|| (Stack[i]->name == Event_Not_available)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = sell_variable_list.begin(); s != sell_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) sell_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( sell_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far sell_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = sell_variable_list.size();
+  if(thread_length != sell_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    receive_order_variable= receive_order_variable_list[i];
+    sell_variable= sell_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(sell_variable,receive_order_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    related_to_UDR_set.insert(pair<int, int>(receive_order_variable,sell_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_41_42_ob class
+
+//---- 11 ---- 
+class Coordinate_49_50_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_49_50_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int sell_variable; // thread variable
+  vector<int> sell_variable_list; // list of coordinated events
+  int  Producers_source = Root_table[Event_Producers]; // source of coordination
+ 
+  int receive_variable; // thread variable
+  vector<int> receive_variable_list; // list of coordinated events
+  int  Consumers_source = Root_table[Event_Consumers]; // source of coordination
+ 
+
+  // create lists of coordinated events 
+  // preparing thread for sell_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      sell_variable = i; 
+      if( sell_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Producers_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = sell_variable_list.begin(); s != sell_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) sell_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source sell_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = sell_variable_list.size();
+  if(thread_length != sell_variable_list.size()) throw failed;
+
+  // preparing thread for receive_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      receive_variable = i; 
+      if( receive_variable_list.size() == thread_length){
+         sell_variable = 0; } 
+      else{ 
+         sell_variable = sell_variable_list[receive_variable_list.size()];}; 
+      if(in_matrix[i * len +  Consumers_source ]){ 
+       if( (  (Stack[i]->name == Event_Receive_supply))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = receive_variable_list.begin(); s != receive_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) receive_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( receive_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far receive_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = receive_variable_list.size();
+  if(thread_length != receive_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    sell_variable= sell_variable_list[i];
+    receive_variable= receive_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(receive_variable,sell_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    related_to_UDR_set.insert(pair<int, int>(sell_variable,receive_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_49_50_ob class
+
+//---- 12 ---- 
+class Coordinate_75_76_ob: public Coordinate {
+public: 
+  //**** COORDINATE with asynchronous sources **** 
+  Coordination_source * source[ 1 ]; 
+  // Atomic_producer, Composite_event_instance, Coordinate_event_ob 
+  // set the global derivation_path_mark 
+  int current_path; 
+  int unique_id; 
+  // for traverse() to detect when no more options remain 
+  int completeness_count; 
+  int activated_source_count; 
+
+  // constructor 
+  Coordinate_75_76_ob(int n): Coordinate(n){
+    unique_id = get_unique_number(); 
+  // remember path where we start to produce permutations 
+    current_path = -20; 
+  // initialize all sources 
+    for(int i = 0; i < 1 ; i++) source[i] = new Coordination_source; 
+  } 
+
+  // to overload the inherited hold() from Event_producer via Coordinate 
+  void hold(){ 
+    for(int k = 0; k < 1 ; k++) source[k]->hold_source(); } 
+
+Traversal_result traverse(){ 
+     //*** traverse with permutation generation 
+     completeness_count = 0; activated_source_count= 0; 
+     if(current_path != derivation_path_mark){ 
+       current_path = derivation_path_mark; 
+       // prepare to repeat the permutation cycle 
+       for(int k = 0; k < 1 ; k++) source[k]->reset(); 
+     }; 
+
+ try{ create_matrices(); 
+   if( Quantified_expr_55_56(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ! Quantified_expr_67_68(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int refusal1_variable; // thread variable
+  vector<int> refusal1_variable_list; // list of coordinated events
+  int  Producers_source = Root_table[Event_Producers]; // source of coordination
+ 
+  int refusal2_variable; // thread variable
+  vector<int> refusal2_variable_list; // list of coordinated events
+  int  Consumers_source = Root_table[Event_Consumers]; // source of coordination
+ 
+
+  // create lists of coordinated events 
+  // preparing thread for refusal1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      refusal1_variable = i; 
+      if( refusal1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Producers_source ]){ 
+       if( (  (Stack[i]->name == Event_Not_available))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = refusal1_variable_list.begin(); s != refusal1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) refusal1_variable_list.push_back(i);
+       } 
+     } }; 
+  // **** <!> source with permutations **** 
+  activated_source_count++; 
+  // get next permutation 
+  switch(source[ 0 ] -> get_permutation( refusal1_variable_list) ){
+    case success_and_completed:	completeness_count++; 
+                                 break; 
+    case success_and_ready_for_next: 
+        // hold all previous Coordination sources 
+        // until source[ 0 ] completes 
+        for(int k = 0; k < 0 ; k++) source[k]->hold_source(); 
+    default:; // to avoid C++ warnings 
+    };// end switch 
+    // reset all following sources preparing to repeat the permutation cycle 
+    if(!(source[ 0 ] -> was_on_hold)) { 
+      for(int k = 0 + 1; k < 1 ; k++) source[k]->reset(); 
+    }; 
+    source[ 0 ] -> was_on_hold = false; 
+  // if has proceeded so far refusal1_variable_list is ready
+
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = refusal1_variable_list.size();
+  if(thread_length != refusal1_variable_list.size()) throw failed;
+
+  // preparing thread for refusal2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      refusal2_variable = i; 
+      if( refusal2_variable_list.size() == thread_length){
+         refusal1_variable = 0; } 
+      else{ 
+         refusal1_variable = refusal1_variable_list[refusal2_variable_list.size()];
+}; 
+      if(in_matrix[i * len +  Consumers_source ]){ 
+       if( (  (Stack[i]->name == Event_Not_available))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = refusal2_variable_list.begin(); s != refusal2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) refusal2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source refusal2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = refusal2_variable_list.size();
+  if(thread_length != refusal2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    refusal1_variable= refusal1_variable_list[i];
+    refusal2_variable= refusal2_variable_list[i];
+    // SHARE_clause , throws failed exception if cannot complete 
+    make_equality_complete( refusal1_variable , refusal2_variable ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return (completeness_count == activated_source_count)? 
+   success_and_completed: success_and_ready_for_next; 
+    } // end traverse() 
+}; // end Coordinate_75_76_ob class
+
+//---- 13 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Receive_supply); 
+      element[ 1 ]=  new Atomic_producer(Event_Not_available); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 14 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Request_delivery); 
+      element[ 1 ]=  new Alt_5_6 ; 
+    } 
+};// end class Sq_7_8 
+
+//---- 15 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 16 ---- 
+class Alt_29_30 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_29_30 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Sell); 
+      element[ 1 ]=  new Atomic_producer(Event_Not_available); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_29_30 
+
+//---- 17 ---- 
+class Itr_31_32 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_31_32 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_29_30 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_31_32 
+
+//---- 18 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Consumer){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 19 ---- 
+class Comp_33_34 : public Composite_producer { 
+public: // constructor 
+    Comp_33_34 (): Composite_producer(Event_Producer){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_31_32 ; 
+    } 
+};// end class Comp_33_34 
+
+//---- 20 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Consumers){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Consumer); 
+    } 
+};// end class Comp_3_4 
+
+//---- 21 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_Supply_Office){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Receive_order_and_buy); 
+    } 
+};// end class Comp_15_16 
+
+//---- 22 ---- 
+class Comp_27_28 : public Composite_producer { 
+public: // constructor 
+    Comp_27_28 (): Composite_producer(Event_Producers){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Producer); 
+    } 
+};// end class Comp_27_28 
+
+//---- 23 ---- 
+class SCHEMA_Suppliers: public Composite_producer {
+public: // constructor 
+    SCHEMA_Suppliers(): Composite_producer(Event_Suppliers){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 8 ]; 
+      element[0]= new Composite_secondary_producer(Event_Consumers);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Supply_Office);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Coordinate_23_24_ob(Event_Coordinate_23_24);
+      element[3]= new Composite_secondary_producer(Event_Producers);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new Coordinate_41_42_ob(Event_Coordinate_41_42);
+      element[5]= new Coordinate_49_50_ob(Event_Coordinate_49_50);
+      element[6]= new Coordinate_75_76_ob(Event_Coordinate_75_76);
+      element[7]= new SIMPLE_LIST_107_108_ob(Event_SIMPLE_LIST_107_108);
+    } 
+};// end class SCHEMA_Suppliers
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example19_Consumers_Suppliers.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_11_12 temp_24; temp_24.harvest();
+    Comp_33_34 temp_25; temp_25.harvest();
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_26; temp_26.harvest();
+    Comp_15_16 temp_27; temp_27.harvest();
+    Comp_27_28 temp_28; temp_28.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Suppliers temp_29; temp_29.harvest();
+   temp_29.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Suppliers"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.mp
new file mode 100644
index 0000000..cb771e9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.mp
@@ -0,0 +1,101 @@
+/* Example 19, Consumers/Suppliers
+
+Asynchronous coordination and dependency definition example.
+
+user-defined relation related_to connects events within each 
+single Request_delivery -> Consume chain
+
+on Gryphon:
+	scope 1, 2   traces, in less than 1 sec.
+  	scope 2, 670 traces, approx. time 2.5 min.
+*/
+
+SCHEMA Suppliers
+
+/*=========================================*/
+ROOT Consumers: {+ Consumer +};
+
+Consumer: (* Request_delivery 
+
+    		 ( Receive_supply  	| 
+
+               Not_available 	) 
+    	  *)
+;
+
+/*=======================================================================
+	Supply_Office communicates asynchronously with Producers and Suppliers 
+=========================================================================*/
+ROOT Supply_Office: (*<1.. $$scope * $$scope> 
+							/* Supply_Office serves several Consumers, 
+								hence the iteration should be increased */
+							Receive_order_and_buy 
+					*);
+
+/*======== coordination ===================================================*/
+COORDINATE 	<!> $request: Request_delivery 				FROM Consumers,
+			$receive_request: Receive_order_and_buy 	FROM Supply_Office
+	DO
+		ADD $request PRECEDES 		$receive_request;
+		ADD $request related_to 	$receive_request;
+	OD;
+
+/*==========================================*/
+ROOT Producers: {+ Producer +};	
+
+Producer: (* ( Sell | Not_available ) *);
+
+/*======== coordination ===================================================*/
+COORDINATE 	$receive_order: Receive_order_and_buy 		FROM Supply_Office,
+            /* Receive_order_and_buy and Sell/Not_available events 
+			    may be asynchronous */
+			<!> $sell: (Sell | Not_available) FROM Producers
+	DO 	ADD $receive_order PRECEDES 	$sell; 
+		ADD $receive_order related_to 	$sell; 
+	OD;
+
+COORDINATE 	$sell:  Sell 					FROM Producers,
+				/* Sell and  Receive_supply may be asynchronous */
+			<!> $receive: Receive_supply 	FROM Consumers
+DO 	ADD $sell PRECEDES 		$receive; 
+	ADD $sell related_to 	$receive; 
+OD;
+
+ENSURE FOREACH 	$request: Request_delivery, 
+				$receive: Receive_supply
+				( $request ^related_to 	$receive -> $request BEFORE $receive);
+
+/* preventing mismatched delivery */
+ENSURE 
+	NOT EXISTS DISJ $c1: Consumer, $c2: Consumer
+		EXISTS 	$request: Request_delivery 		FROM $c1, 
+				$receive: Receive_supply 		FROM $c2,
+				$order: Receive_order_and_buy FROM Supply_Office
+
+        		( $request 	^related_to $order 		AND 
+           	 	  $order  	^related_to $receive        );
+
+COORDINATE 	<!>$refusal1: 	Not_available 	FROM Producers,
+			$refusal2: 		Not_available 	FROM Consumers
+	DO SHARE $refusal1 $refusal2; OD;
+
+/* preventing mismatched refusals */
+ENSURE  
+NOT EXISTS DISJ $c1: Consumer, $c2: Consumer
+		EXISTS 	$request: Request_delivery 		FROM $c1, 
+				$receive: Not_available 		FROM $c2,
+				$order: Receive_order_and_buy 	FROM Supply_Office
+
+        		( $request 	^related_to $order 		AND 
+           	 	  $order  	^related_to $receive        );
+
+/**** add yet another relation for Supplier/Consumer ****/
+COORDINATE $c: Consumer
+	DO COORDINATE $p: Producer
+		DO
+	 		IF EXISTS 	$request: 	Request_delivery 	FROM $c, 
+						$sell: 		Sell 				FROM $p
+        		( $request ^related_to $sell )
+        	THEN ADD $p Is_supplier_for $c; FI;
+	OD;
+OD; 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp.txt
new file mode 100644
index 0000000..d39dfca
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example19_Consumers_Suppliers tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.tree
new file mode 100644
index 0000000000000000000000000000000000000000..f4a2823ff9ee667f99c9e4ca3d2d3e394fe1b599
GIT binary patch
literal 18944
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
G|NjBx*BDv=

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.txt
new file mode 100644
index 0000000..76982e9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example19_Consumers_Suppliers.txt
@@ -0,0 +1,20 @@
+generating traces for scope 1 
+completed Consumer: 	3 traces (0 MARKed) 	7 events 
+		average 2.33333 ev/trace 	min 1 	max 3
+
+completed Producer: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed Consumers: 	3 traces (0 MARKed) 	10 events 
+		average 3.33333 ev/trace 	min 2 	max 4
+
+completed Supply_Office: 	1 traces (0 MARKed) 	2 events 
+
+completed Producers: 	3 traces (0 MARKed) 	8 events 
+		average 2.66667 ev/trace 	min 2 	max 3
+
+completed Suppliers: 	2 traces (0 MARKed) 	20 events 
+		average 10 ev/trace 	min 10 	max 10
+
+Elapsed time 0.0007 sec, Speed: 74285.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.cpp
new file mode 100644
index 0000000..34305a6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.cpp
@@ -0,0 +1,1105 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Reuse_of_a_system trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_check_ID
+    , Event_creds_invalid
+    , Event_request_access
+    , Event_attempts_exhausted
+    , Event_cancel_access_request
+    , Event_creds_valid
+    , Event_access_granted
+    , Event_provide_ID
+    , Event_abandon_access_request
+    , Event_login_succeeds
+    , Event_work
+    , Event_cancel
+    , Event_login_fails
+       // composite events 
+    , Event_request_ID
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_39_40
+    , Event_SIMPLE_LIST_47_48
+    , Event_SIMPLE_LIST_77_78
+    , Event_SIMPLE_LIST_95_96
+       // ADD operations 
+       // ROOT events 
+    , Event_Data_Base
+    , Event_Authentication_Service
+    , Event_Requester
+    , Event_User
+       // main schema event 
+    , Event_Reuse_of_a_system }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "check_ID"
+     , "creds_invalid"
+     , "request_access"
+     , "attempts_exhausted"
+     , "cancel_access_request"
+     , "creds_valid"
+     , "access_granted"
+     , "provide_ID"
+     , "abandon_access_request"
+     , "login_succeeds"
+     , "work"
+     , "cancel"
+     , "login_fails"
+     , "request_ID"
+     , "SIMPLE_LIST_39_40"
+     , "SIMPLE_LIST_47_48"
+     , "SIMPLE_LIST_77_78"
+     , "SIMPLE_LIST_95_96"
+     , "Data_Base"
+     , "Authentication_Service"
+     , "Requester"
+     , "User"
+     , "Reuse_of_a_system" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_creds_invalid){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_24(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_attempts_exhausted){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_25(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_creds_invalid){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_30(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_attempts_exhausted){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 5 ---- 
+class SIMPLE_LIST_39_40_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_39_40_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_19(current_host, Root_table[Event_Authentication_Service])
+<= 3 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( ( special_function_24(current_host, Root_table[Event_Authentication_Service])
+== 1 )== ( special_function_25(current_host, Root_table[Event_Authentication_Service])
+== 3 ))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_30(current_host, Root_table[Event_Authentication_Service])
+> 0 )){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"  attempts exhausted!";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_39_40_ob class
+
+//---- 6 ---- 
+class SIMPLE_LIST_47_48_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_47_48_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Authentication_Service_source = Root_table[Event_Authentication_Service];
+   // lists of shared events for  Authentication_Service 
+  vector<int> Authentication_Service_check_ID_list;
+
+  int Data_Base_source = Root_table[Event_Data_Base];
+   // lists of shared events for  Data_Base 
+  vector<int> Data_Base_check_ID_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Authentication_Service_source ]){ 
+     if( Stack[i]->name == Event_check_ID ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Authentication_Service_check_ID_list.begin();
+          s != Authentication_Service_check_ID_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Authentication_Service_check_ID_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Data_Base_source ]){ 
+     if( Stack[i]->name == Event_check_ID ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Data_Base_check_ID_list.begin();
+          s != Data_Base_check_ID_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Data_Base_check_ID_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Data_Base_check_ID_list.size();
+     if(Authentication_Service_check_ID_list.size() != len_to_compare) throw 
+failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Data_Base_check_ID_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Authentication_Service_check_ID_list[i], Data_Base_check_ID_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_47_48_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_77_78_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_77_78_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Requester_source = Root_table[Event_Requester];
+   // lists of shared events for  Requester 
+  vector<int> Requester_creds_valid_list;
+  vector<int> Requester_creds_invalid_list;
+  vector<int> Requester_attempts_exhausted_list;
+  vector<int> Requester_access_granted_list;
+
+  int Authentication_Service_source = Root_table[Event_Authentication_Service];
+   // lists of shared events for  Authentication_Service 
+  vector<int> Authentication_Service_creds_valid_list;
+  vector<int> Authentication_Service_creds_invalid_list;
+  vector<int> Authentication_Service_attempts_exhausted_list;
+  vector<int> Authentication_Service_access_granted_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Requester_source ]){ 
+     if( Stack[i]->name == Event_creds_valid ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Requester_creds_valid_list.begin();
+          s != Requester_creds_valid_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Requester_creds_valid_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_creds_invalid ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Requester_creds_invalid_list.begin();
+          s != Requester_creds_invalid_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Requester_creds_invalid_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_attempts_exhausted ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Requester_attempts_exhausted_list.begin();
+          s != Requester_attempts_exhausted_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Requester_attempts_exhausted_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_access_granted ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Requester_access_granted_list.begin();
+          s != Requester_access_granted_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Requester_access_granted_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Authentication_Service_source ]){ 
+     if( Stack[i]->name == Event_creds_valid ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Authentication_Service_creds_valid_list.begin();
+          s != Authentication_Service_creds_valid_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Authentication_Service_creds_valid_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_creds_invalid ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Authentication_Service_creds_invalid_list.begin();
+          s != Authentication_Service_creds_invalid_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Authentication_Service_creds_invalid_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_attempts_exhausted ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Authentication_Service_attempts_exhausted_list.begin();
+          s != Authentication_Service_attempts_exhausted_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Authentication_Service_attempts_exhausted_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_access_granted ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Authentication_Service_access_granted_list.begin();
+          s != Authentication_Service_access_granted_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Authentication_Service_access_granted_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Authentication_Service_creds_valid_list.size();
+     if(Requester_creds_valid_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Authentication_Service_creds_invalid_list.size();
+     if(Requester_creds_invalid_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Authentication_Service_attempts_exhausted_list.size();
+     if(Requester_attempts_exhausted_list.size() != len_to_compare) throw failed
+ ; 
+   len_to_compare = Authentication_Service_access_granted_list.size();
+     if(Requester_access_granted_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Authentication_Service_creds_valid_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Requester_creds_valid_list[i], Authentication_Service_creds_valid_list[i]);
+   } 
+   len_to_compare = Authentication_Service_creds_invalid_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Requester_creds_invalid_list[i], Authentication_Service_creds_invalid_list[i]);
+   } 
+   len_to_compare = Authentication_Service_attempts_exhausted_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Requester_attempts_exhausted_list[i], Authentication_Service_attempts_exhausted_list[i]);
+   } 
+   len_to_compare = Authentication_Service_access_granted_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Requester_access_granted_list[i], Authentication_Service_access_granted_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Requester_source = Root_table[Event_Requester]; // source of coordination
+ 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Authentication_Service_source = Root_table[Event_Authentication_Service]
+; // source of coordination 
+  int c_variable; // thread variable
+  vector<int> c_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Requester_source ]){ 
+       if( (  (Stack[i]->name == Event_request_access))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Authentication_Service_source ]){ 
+       if( (  (Stack[i]->name == Event_request_ID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // preparing thread for c_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      c_variable = i; 
+      if( c_variable_list.size() == thread_length){
+         a_variable = 0; 
+         b_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[c_variable_list.size()];
+         b_variable = b_variable_list[c_variable_list.size()];}; 
+      if(in_matrix[i * len +  Requester_source ]){ 
+       if( (  (Stack[i]->name == Event_provide_ID))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = c_variable_list.begin(); s != c_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) c_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source c_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = c_variable_list.size();
+  if(thread_length != c_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    c_variable= c_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    Follows.insert(pair<int, int>(c_variable,b_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_77_78_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_95_96_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_95_96_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    map_relations( Root_table[Event_Requester] ,  Root_table[Event_User] ); 
+    create_matrices();// to check for axiom violation 
+        // since relation tables were modified 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int ready_variable; // thread variable
+  vector<int> ready_variable_list; // list of coordinated events
+  int  Requester_source = Root_table[Event_Requester]; // source of coordination
+ 
+  int go_variable; // thread variable
+  vector<int> go_variable_list; // list of coordinated events
+  int  User_source = Root_table[Event_User]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for ready_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      ready_variable = i; 
+      if( ready_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Requester_source ]){ 
+       if( (  (Stack[i]->name == Event_access_granted))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = ready_variable_list.begin(); s != ready_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) ready_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source ready_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = ready_variable_list.size();
+  if(thread_length != ready_variable_list.size()) throw failed;
+
+  // preparing thread for go_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      go_variable = i; 
+      if( go_variable_list.size() == thread_length){
+         ready_variable = 0; } 
+      else{ 
+         ready_variable = ready_variable_list[go_variable_list.size()];}; 
+      if(in_matrix[i * len +  User_source ]){ 
+       if( (  (Stack[i]->name == Event_login_succeeds))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = go_variable_list.begin(); s != go_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) go_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source go_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = go_variable_list.size();
+  if(thread_length != go_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    ready_variable= ready_variable_list[i];
+    go_variable= go_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(go_variable,ready_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_95_96_ob class
+
+//---- 9 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_check_ID); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 10 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_invalid); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_request_ID); 
+    } 
+};// end class Sq_5_6 
+
+//---- 11 ---- 
+class Itr_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_5_6 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_7_8 
+
+//---- 12 ---- 
+class Opt_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_attempts_exhausted); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_9_10 
+
+//---- 13 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_invalid); 
+      element[ 1 ]=  new Opt_9_10 ; 
+      element[ 2 ]=  new Atomic_producer(Event_cancel_access_request); 
+    } 
+};// end class Sq_11_12 
+
+//---- 14 ---- 
+class Sq_13_14 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_13_14 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_valid); 
+      element[ 1 ]=  new Atomic_producer(Event_access_granted); 
+    } 
+};// end class Sq_13_14 
+
+//---- 15 ---- 
+class Alt_15_16 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_15_16 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+      element[ 1 ]=  new Sq_13_14 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_15_16 
+
+//---- 16 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_request_ID); 
+      element[ 1 ]=  new Itr_7_8 ; 
+      element[ 2 ]=  new Alt_15_16 ; 
+    } 
+};// end class Sq_17_18 
+
+//---- 17 ---- 
+class Sq_49_50 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_49_50 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_invalid); 
+      element[ 1 ]=  new Atomic_producer(Event_request_access); 
+      element[ 2 ]=  new Atomic_producer(Event_provide_ID); 
+    } 
+};// end class Sq_49_50 
+
+//---- 18 ---- 
+class Itr_51_52 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_51_52 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_49_50 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_51_52 
+
+//---- 19 ---- 
+class Alt_53_54 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_53_54 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_access_granted); 
+      element[ 1 ]=  new Atomic_producer(Event_abandon_access_request); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_53_54 
+
+//---- 20 ---- 
+class Sq_55_56 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_55_56 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_valid); 
+      element[ 1 ]=  new Alt_53_54 ; 
+    } 
+};// end class Sq_55_56 
+
+//---- 21 ---- 
+class Alt_57_58 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_57_58 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_attempts_exhausted); 
+      element[ 1 ]=  new Atomic_producer(Event_abandon_access_request); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_57_58 
+
+//---- 22 ---- 
+class Sq_59_60 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_59_60 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_creds_invalid); 
+      element[ 1 ]=  new Alt_57_58 ; 
+    } 
+};// end class Sq_59_60 
+
+//---- 23 ---- 
+class Alt_61_62 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_61_62 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_55_56 ; 
+      element[ 1 ]=  new Sq_59_60 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_61_62 
+
+//---- 24 ---- 
+class Sq_63_64 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_63_64 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_request_access); 
+      element[ 1 ]=  new Atomic_producer(Event_provide_ID); 
+      element[ 2 ]=  new Itr_51_52 ; 
+      element[ 3 ]=  new Alt_61_62 ; 
+    } 
+};// end class Sq_63_64 
+
+//---- 25 ---- 
+class Alt_79_80 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_79_80 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_work); 
+      element[ 1 ]=  new Atomic_producer(Event_cancel); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_79_80 
+
+//---- 26 ---- 
+class Sq_81_82 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_81_82 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_login_succeeds); 
+      element[ 1 ]=  new Alt_79_80 ; 
+    } 
+};// end class Sq_81_82 
+
+//---- 27 ---- 
+class Alt_83_84 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_83_84 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_81_82 ; 
+      element[ 1 ]=  new Atomic_producer(Event_login_fails); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_83_84 
+
+//---- 28 ---- 
+class Comp_43_44 : public Composite_producer { 
+public: // constructor 
+    Comp_43_44 (): Composite_producer(Event_request_ID){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_check_ID); 
+    } 
+};// end class Comp_43_44 
+
+//---- 29 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Data_Base){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 30 ---- 
+class Comp_41_42 : public Composite_producer { 
+public: // constructor 
+    Comp_41_42 (): Composite_producer(Event_Authentication_Service){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_17_18 ; 
+      element[ 1 ]=  new SIMPLE_LIST_39_40_ob(Event_SIMPLE_LIST_39_40); 
+    } 
+};// end class Comp_41_42 
+
+//---- 31 ---- 
+class Comp_65_66 : public Composite_producer { 
+public: // constructor 
+    Comp_65_66 (): Composite_producer(Event_Requester){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_63_64 ; 
+    } 
+};// end class Comp_65_66 
+
+//---- 32 ---- 
+class Comp_85_86 : public Composite_producer { 
+public: // constructor 
+    Comp_85_86 (): Composite_producer(Event_User){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_83_84 ; 
+    } 
+};// end class Comp_85_86 
+
+//---- 33 ---- 
+class SCHEMA_Reuse_of_a_system: public Composite_producer {
+public: // constructor 
+    SCHEMA_Reuse_of_a_system(): Composite_producer(Event_Reuse_of_a_system){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_Data_Base);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Authentication_Service);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_47_48_ob(Event_SIMPLE_LIST_47_48);
+      element[3]= new Composite_secondary_producer(Event_Requester);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_77_78_ob(Event_SIMPLE_LIST_77_78);
+      element[5]= new Composite_secondary_producer(Event_User);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_95_96_ob(Event_SIMPLE_LIST_95_96);
+    } 
+};// end class SCHEMA_Reuse_of_a_system
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example20_MP_model__reuse.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_43_44 temp_34; temp_34.harvest();
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_35; temp_35.harvest();
+    Comp_41_42 temp_36; temp_36.harvest();
+    Comp_65_66 temp_37; temp_37.harvest();
+    Comp_85_86 temp_38; temp_38.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Reuse_of_a_system temp_39; temp_39.harvest();
+   temp_39.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Reuse_of_a_system"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.mp
new file mode 100644
index 0000000..c09d654
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.mp
@@ -0,0 +1,89 @@
+SCHEMA 	Reuse_of_a_system
+
+/* Example 20. 
+	Authentication system's behavior for reuse with MAP operation.
+
+	run for scope 3 or more to see attempts_exhausted event
+	you may hide the Requestor node in the event trace graph,
+	since the User will copy all Requestor's behavior
+
+============== reused MP code starts here ==================*/
+ROOT Data_Base: (*  check_ID *);
+
+ROOT Authentication_Service: 	
+	request_ID
+	(* creds_invalid 	request_ID *)
+
+	( 	creds_invalid 	
+		[ attempts_exhausted ]  
+		cancel_access_request 	|
+
+		creds_valid   
+		access_granted 		   	 )
+
+BUILD{ 	/*--- constraints for this root ---*/
+	ENSURE #creds_invalid <= 3; /* no more than 3 attempts to get access */
+	ENSURE #attempts_exhausted == 1 <-> #creds_invalid == 3;
+	IF #attempts_exhausted > 0 THEN SAY("  attempts exhausted!");FI;  }   
+;
+
+request_ID: check_ID;
+
+Authentication_Service, Data_Base SHARE ALL check_ID;
+
+ROOT Requester: 	
+	request_access
+	provide_ID 
+	(* creds_invalid 	request_access  provide_ID *)
+
+	( creds_valid  	
+	  ( access_granted | abandon_access_request) 		|
+
+	  creds_invalid  	
+	  ( attempts_exhausted | abandon_access_request ) 	)
+; 
+
+Requester, Authentication_Service SHARE ALL 
+								creds_valid,  		 creds_invalid, 
+								attempts_exhausted, access_granted;
+
+COORDINATE 	$a: request_access 	FROM Requester,
+			$b: request_ID 		FROM Authentication_Service, 
+			$c: provide_ID 		FROM Requester
+	DO	ADD $a PRECEDES $b;	
+		ADD $b PRECEDES $c;
+	OD;
+/*================= end of reused MP code =======================*/
+
+
+/*===============================================================*/
+/* new system, which will reuse authentication system's behavior */
+/*---------------------------------------------------------------*/
+ROOT User: 	
+
+	( login_succeeds 
+	  ( work 	| 
+	  	/* User may change their mind and cancel login */
+		cancel 	)			|
+
+	  login_fails  			)
+;
+
+
+/*================================================================*/
+/* 	the following adjustments of the new model and the reused one 
+	are needed to integrate their behaviors.
+
+	reuse of authentication system's behavior: 
+	mapping actions of the Requestor from Authentication_Service
+	on actions of the User.
+	User will copy/reuse all activities of Requestor
+------------------------------------------------------------------*/
+/* Requester's behavior is included into the behavior of User */
+    MAP Requester ON User;
+
+/*  synchronizing particular events from the authentication 
+	system's behavior with events in the new system 		  */
+COORDINATE 	$ready: access_granted 	FROM Requester,
+			$go: 	login_succeeds	FROM User	
+	DO ADD $ready PRECEDES $go; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp.txt
new file mode 100644
index 0000000..c1967c9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example20_MP_model__reuse tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.tree
new file mode 100644
index 0000000000000000000000000000000000000000..60af972e8ed5ba6abab013b353edf10c9d154030
GIT binary patch
literal 15872
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
D(3%%H

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.txt
new file mode 100644
index 0000000..093c206
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example20_MP_model__reuse.txt
@@ -0,0 +1,20 @@
+generating traces for scope 1 
+completed request_ID: 	1 traces (0 MARKed) 	2 events 
+
+completed Data_Base: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Authentication_Service: 	4 traces (0 MARKed) 	26 events 
+		average 6.5 ev/trace 	min 5 	max 8
+
+completed Requester: 	8 traces (0 MARKed) 	52 events 
+		average 6.5 ev/trace 	min 5 	max 8
+
+completed User: 	3 traces (0 MARKed) 	8 events 
+		average 2.66667 ev/trace 	min 2 	max 3
+
+completed Reuse_of_a_system: 	3 traces (0 MARKed) 	47 events 
+		average 15.6667 ev/trace 	min 15 	max 16
+
+Elapsed time 0.003091 sec, Speed: 44645.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.cpp
new file mode 100644
index 0000000..3abe3af
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.cpp
@@ -0,0 +1,1536 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA compiler1 trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_get_characters
+    , Event_unget_some_characters
+    , Event_match_string
+    , Event_largest_successful_match
+    , Event_put_token
+    , Event_get_token
+    , Event_Push
+    , Event_Pop
+    , Event_Put_node
+    , Event_Parsing_complete
+    , Event_Report_syntax_error
+       // composite events 
+    , Event_RegExpr_match
+    , Event_Token_recognition
+    , Event_Shift
+    , Event_Reduce
+    , Event_Shift_Reduce
+    , Event_Stack
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_24_25
+    , Event_SIMPLE_LIST_34_35
+    , Event_SIMPLE_LIST_48_49
+    , Event_SIMPLE_LIST_54_55
+    , Event_SIMPLE_LIST_92_93
+    , Event_SIMPLE_LIST_104_105
+    , Event_SIMPLE_LIST_110_111
+       // ADD operations 
+       // ROOT events 
+    , Event_Source_code
+    , Event_Lexer
+    , Event_Token_list
+    , Event_Parser
+       // main schema event 
+    , Event_compiler1 }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "get_characters"
+     , "unget_some_characters"
+     , "match_string"
+     , "largest_successful_match"
+     , "put_token"
+     , "get_token"
+     , "Push"
+     , "Pop"
+     , "Put_node"
+     , "Parsing_complete"
+     , "Report_syntax_error"
+     , "RegExpr_match"
+     , "Token_recognition"
+     , "Shift"
+     , "Reduce"
+     , "Shift_Reduce"
+     , "Stack"
+     , "SIMPLE_LIST_24_25"
+     , "SIMPLE_LIST_34_35"
+     , "SIMPLE_LIST_48_49"
+     , "SIMPLE_LIST_54_55"
+     , "SIMPLE_LIST_92_93"
+     , "SIMPLE_LIST_104_105"
+     , "SIMPLE_LIST_110_111"
+     , "Source_code"
+     , "Lexer"
+     , "Token_list"
+     , "Parser"
+     , "compiler1" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_largest_successful_match){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_42(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_put_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_43(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_get_token){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_84(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_85(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+bool Quantified_expr_86_87(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int x_variable;
+     int pivot_x_variable = 0; 
+
+     // loop 1 for x_variable 
+     for( x_variable = 0; x_variable < len; x_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ x_variable  * len +  pivot_x_variable 
+]) && 
+           (   
+            (Stack[x_variable]-> name == Event_Pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_84(current_host, x_variable ) < special_function_85(current_host, 
+x_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 7 ---- 
+class SIMPLE_LIST_24_25_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_24_25_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_19(current_host, Root_table[Event_Token_recognition])
+== 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_24_25_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_34_35_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_34_35_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Source_code_source = Root_table[Event_Source_code];
+   // lists of shared events for  Source_code 
+  vector<int> Source_code_get_characters_list;
+  vector<int> Source_code_unget_some_characters_list;
+
+  int Lexer_source = Root_table[Event_Lexer];
+   // lists of shared events for  Lexer 
+  vector<int> Lexer_get_characters_list;
+  vector<int> Lexer_unget_some_characters_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Source_code_source ]){ 
+     if( Stack[i]->name == Event_get_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Source_code_get_characters_list.begin();
+          s != Source_code_get_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Source_code_get_characters_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_unget_some_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Source_code_unget_some_characters_list.begin();
+          s != Source_code_unget_some_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Source_code_unget_some_characters_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Lexer_source ]){ 
+     if( Stack[i]->name == Event_get_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Lexer_get_characters_list.begin();
+          s != Lexer_get_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Lexer_get_characters_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_unget_some_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Lexer_unget_some_characters_list.begin();
+          s != Lexer_unget_some_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Lexer_unget_some_characters_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Lexer_get_characters_list.size();
+     if(Source_code_get_characters_list.size() != len_to_compare) throw failed ;
+ 
+   len_to_compare = Lexer_unget_some_characters_list.size();
+     if(Source_code_unget_some_characters_list.size() != len_to_compare) throw 
+failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Lexer_get_characters_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Source_code_get_characters_list[i], Lexer_get_characters_list[i]);
+   } 
+   len_to_compare = Lexer_unget_some_characters_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Source_code_unget_some_characters_list[i], Lexer_unget_some_characters_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_34_35_ob class
+
+//---- 9 ---- 
+class SIMPLE_LIST_48_49_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_48_49_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_42(current_host, Root_table[Event_Token_list])>= special_function_43(current_host, Root_table[Event_Token_list]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_48_49_ob class
+
+//---- 10 ---- 
+class SIMPLE_LIST_54_55_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_54_55_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Token_list_source = Root_table[Event_Token_list];
+   // lists of shared events for  Token_list 
+  vector<int> Token_list_put_token_list;
+
+  int Lexer_source = Root_table[Event_Lexer];
+   // lists of shared events for  Lexer 
+  vector<int> Lexer_put_token_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Token_list_source ]){ 
+     if( Stack[i]->name == Event_put_token ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Token_list_put_token_list.begin();
+          s != Token_list_put_token_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Token_list_put_token_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Lexer_source ]){ 
+     if( Stack[i]->name == Event_put_token ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Lexer_put_token_list.begin();
+          s != Lexer_put_token_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Lexer_put_token_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Lexer_put_token_list.size();
+     if(Token_list_put_token_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Lexer_put_token_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Token_list_put_token_list[i], Lexer_put_token_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_54_55_ob class
+
+//---- 11 ---- 
+class SIMPLE_LIST_92_93_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_92_93_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_86_87(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_92_93_ob class
+
+//---- 12 ---- 
+class SIMPLE_LIST_104_105_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_104_105_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s1_variable; // thread variable
+  vector<int> s1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int s2_variable; // thread variable
+  vector<int> s2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s1_variable = i; 
+      if( s1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Shift_Reduce))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s1_variable_list.begin(); s != s1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s1_variable_list.size();
+  if(thread_length != s1_variable_list.size()) throw failed;
+
+  // preparing thread for s2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s2_variable = i; 
+      if( s2_variable_list.size() == thread_length){
+         s1_variable = 0; } 
+      else{ 
+         s1_variable = s1_variable_list[s2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Stack))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s2_variable_list.begin(); s != s2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s2_variable_list.size();
+  if(thread_length != s2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s1_variable= s1_variable_list[i];
+    s2_variable= s2_variable_list[i];
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+   // lists of shared events for  s1_variable 
+  vector<int> s1_variable_Pop_list;
+  vector<int> s1_variable_Push_list;
+   // lists of shared events for  s2_variable 
+  vector<int> s2_variable_Pop_list;
+  vector<int> s2_variable_Push_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + s1_variable ]){ 
+     if( Stack[i]->name == Event_Pop ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s1_variable_Pop_list.begin();
+          s != s1_variable_Pop_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s1_variable_Pop_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Push ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s1_variable_Push_list.begin();
+          s != s1_variable_Push_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s1_variable_Push_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + s2_variable ]){ 
+     if( Stack[i]->name == Event_Pop ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s2_variable_Pop_list.begin();
+          s != s2_variable_Pop_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s2_variable_Pop_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Push ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s2_variable_Push_list.begin();
+          s != s2_variable_Push_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s2_variable_Push_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = s2_variable_Pop_list.size();
+     if(s1_variable_Pop_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = s2_variable_Push_list.size();
+     if(s1_variable_Push_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = s2_variable_Pop_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(s1_variable_Pop_list[i], s2_variable_Pop_list[i]);
+   } 
+   len_to_compare = s2_variable_Push_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(s1_variable_Push_list[i], s2_variable_Push_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_104_105_ob class
+
+//---- 13 ---- 
+class SIMPLE_LIST_110_111_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_110_111_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Token_list_source = Root_table[Event_Token_list];
+   // lists of shared events for  Token_list 
+  vector<int> Token_list_get_token_list;
+
+  int Parser_source = Root_table[Event_Parser];
+   // lists of shared events for  Parser 
+  vector<int> Parser_get_token_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Token_list_source ]){ 
+     if( Stack[i]->name == Event_get_token ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Token_list_get_token_list.begin();
+          s != Token_list_get_token_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Token_list_get_token_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Parser_source ]){ 
+     if( Stack[i]->name == Event_get_token ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Parser_get_token_list.begin();
+          s != Parser_get_token_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Parser_get_token_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Parser_get_token_list.size();
+     if(Token_list_get_token_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Parser_get_token_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Token_list_get_token_list[i], Parser_get_token_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_110_111_ob class
+
+//---- 14 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_largest_successful_match); 
+      element[ 1 ]=  new Atomic_producer(Event_put_token); 
+    } 
+};// end class Sq_7_8 
+
+//---- 15 ---- 
+class Opt_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_9_10 
+
+//---- 16 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_match_string); 
+      element[ 1 ]=  new Opt_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 17 ---- 
+class Ct_112_113 : public SET_node_producer_container { 
+public: // constructor 
+    Ct_112_113 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+    } 
+};// end class Ct_112_113 
+
+//---- 18 ---- 
+class Ct_114_115 : public SET_node_producer_container { 
+public: // constructor 
+    Ct_114_115 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+    } 
+};// end class Ct_114_115 
+
+//---- 19 ---- 
+class SetItp_15_16 : public OR_node_producer_container { 
+public: // constructor 
+    SetItp_15_16 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+      element[ 1 ]=  new Ct_112_113 ; 
+      element[ 2 ]=  new Ct_114_115 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class SetItp_15_16 
+
+//---- 20 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_characters); 
+      element[ 1 ]=  new SetItp_15_16 ; 
+      element[ 2 ]=  new Atomic_producer(Event_unget_some_characters); 
+    } 
+};// end class Sq_17_18 
+
+//---- 21 ---- 
+class Sq_56_57 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_56_57 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Sq_56_57 
+
+//---- 22 ---- 
+class Ct_116_117 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_116_117 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Pop); 
+      element[ 1 ]=  new Atomic_producer(Event_Pop); 
+    } 
+};// end class Ct_116_117 
+
+//---- 23 ---- 
+class Itp_60_61 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_60_61 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Pop); 
+      element[ 1 ]=  new Ct_116_117 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itp_60_61 
+
+//---- 24 ---- 
+class Sq_62_63 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_62_63 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itp_60_61 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Push); 
+    } 
+};// end class Sq_62_63 
+
+//---- 25 ---- 
+class Sq_66_67 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_66_67 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Reduce); 
+      element[ 1 ]=  new Atomic_producer(Event_Put_node); 
+    } 
+};// end class Sq_66_67 
+
+//---- 26 ---- 
+class Alt_68_69 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_68_69 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Shift); 
+      element[ 1 ]=  new Sq_66_67 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_68_69 
+
+//---- 27 ---- 
+class Ct_118_119 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_118_119 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_68_69 ; 
+      element[ 1 ]=  new Alt_68_69 ; 
+    } 
+};// end class Ct_118_119 
+
+//---- 28 ---- 
+class Ct_120_121 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_120_121 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_68_69 ; 
+      element[ 1 ]=  new Alt_68_69 ; 
+      element[ 2 ]=  new Alt_68_69 ; 
+    } 
+};// end class Ct_120_121 
+
+//---- 29 ---- 
+class Itp_70_71 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_70_71 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_68_69 ; 
+      element[ 1 ]=  new Ct_118_119 ; 
+      element[ 2 ]=  new Ct_120_121 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_70_71 
+
+//---- 30 ---- 
+class Sq_72_73 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_72_73 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Reduce); 
+      element[ 1 ]=  new Atomic_producer(Event_Put_node); 
+      element[ 2 ]=  new Atomic_producer(Event_Parsing_complete); 
+    } 
+};// end class Sq_72_73 
+
+//---- 31 ---- 
+class Alt_74_75 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_74_75 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_72_73 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Report_syntax_error); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_74_75 
+
+//---- 32 ---- 
+class Sq_76_77 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_76_77 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+      element[ 2 ]=  new Itp_70_71 ; 
+      element[ 3 ]=  new Alt_74_75 ; 
+    } 
+};// end class Sq_76_77 
+
+//---- 33 ---- 
+class Alt_80_81 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_80_81 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_Pop); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_80_81 
+
+//---- 34 ---- 
+class Ct_122_123 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_122_123 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_122_123 
+
+//---- 35 ---- 
+class Ct_124_125 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_124_125 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_124_125 
+
+//---- 36 ---- 
+class Ct_126_127 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_126_127 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_126_127 
+
+//---- 37 ---- 
+class Ct_128_129 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_128_129 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+      element[ 4 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_128_129 
+
+//---- 38 ---- 
+class Ct_130_131 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_130_131 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 6 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+      element[ 4 ]=  new Alt_80_81 ; 
+      element[ 5 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_130_131 
+
+//---- 39 ---- 
+class Ct_132_133 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_132_133 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+      element[ 4 ]=  new Alt_80_81 ; 
+      element[ 5 ]=  new Alt_80_81 ; 
+      element[ 6 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_132_133 
+
+//---- 40 ---- 
+class Ct_134_135 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_134_135 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 8 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+      element[ 4 ]=  new Alt_80_81 ; 
+      element[ 5 ]=  new Alt_80_81 ; 
+      element[ 6 ]=  new Alt_80_81 ; 
+      element[ 7 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_134_135 
+
+//---- 41 ---- 
+class Ct_136_137 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_136_137 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 9 ]; 
+      element[ 0 ]=  new Alt_80_81 ; 
+      element[ 1 ]=  new Alt_80_81 ; 
+      element[ 2 ]=  new Alt_80_81 ; 
+      element[ 3 ]=  new Alt_80_81 ; 
+      element[ 4 ]=  new Alt_80_81 ; 
+      element[ 5 ]=  new Alt_80_81 ; 
+      element[ 6 ]=  new Alt_80_81 ; 
+      element[ 7 ]=  new Alt_80_81 ; 
+      element[ 8 ]=  new Alt_80_81 ; 
+    } 
+};// end class Ct_136_137 
+
+//---- 42 ---- 
+class Itr_82_83 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_82_83 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 8 ]; 
+      element[ 0 ]=  new Ct_122_123 ; 
+      element[ 1 ]=  new Ct_124_125 ; 
+      element[ 2 ]=  new Ct_126_127 ; 
+      element[ 3 ]=  new Ct_128_129 ; 
+      element[ 4 ]=  new Ct_130_131 ; 
+      element[ 5 ]=  new Ct_132_133 ; 
+      element[ 6 ]=  new Ct_134_135 ; 
+      element[ 7 ]=  new Ct_136_137 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  1.250000E-01; 
+      alternative_probability[ 1 ]=  1.250000E-01; 
+      alternative_probability[ 2 ]=  1.250000E-01; 
+      alternative_probability[ 3 ]=  1.250000E-01; 
+      alternative_probability[ 4 ]=  1.250000E-01; 
+      alternative_probability[ 5 ]=  1.250000E-01; 
+      alternative_probability[ 6 ]=  1.250000E-01; 
+      alternative_probability[ 7 ]=  1.250000E-01; 
+    } 
+};// end class Itr_82_83 
+
+//---- 43 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_characters); 
+      element[ 1 ]=  new Atomic_producer(Event_unget_some_characters); 
+    } 
+};// end class Sq_1_2 
+
+//---- 44 ---- 
+class Ct_138_139 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_138_139 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+    } 
+};// end class Ct_138_139 
+
+//---- 45 ---- 
+class Ct_140_141 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_140_141 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      element[ 2 ]=  new Sq_1_2 ; 
+    } 
+};// end class Ct_140_141 
+
+//---- 46 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      element[ 2 ]=  new Ct_138_139 ; 
+      element[ 3 ]=  new Ct_140_141 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 47 ---- 
+class Ct_142_143 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_142_143 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+    } 
+};// end class Ct_142_143 
+
+//---- 48 ---- 
+class Ct_144_145 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_144_145 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+    } 
+};// end class Ct_144_145 
+
+//---- 49 ---- 
+class Itp_28_29 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_28_29 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+      element[ 1 ]=  new Ct_142_143 ; 
+      element[ 2 ]=  new Ct_144_145 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_28_29 
+
+//---- 50 ---- 
+class Ct_146_147 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_146_147 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_put_token); 
+      element[ 1 ]=  new Atomic_producer(Event_put_token); 
+    } 
+};// end class Ct_146_147 
+
+//---- 51 ---- 
+class Ct_148_149 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_148_149 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_put_token); 
+      element[ 1 ]=  new Atomic_producer(Event_put_token); 
+      element[ 2 ]=  new Atomic_producer(Event_put_token); 
+    } 
+};// end class Ct_148_149 
+
+//---- 52 ---- 
+class Itp_36_37 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_36_37 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_put_token); 
+      element[ 1 ]=  new Ct_146_147 ; 
+      element[ 2 ]=  new Ct_148_149 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_36_37 
+
+//---- 53 ---- 
+class Ct_150_151 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_150_151 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Ct_150_151 
+
+//---- 54 ---- 
+class Ct_152_153 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_152_153 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+      element[ 2 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Ct_152_153 
+
+//---- 55 ---- 
+class Itp_38_39 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_38_39 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_token); 
+      element[ 1 ]=  new Ct_150_151 ; 
+      element[ 2 ]=  new Ct_152_153 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_38_39 
+
+//---- 56 ---- 
+class Sq_40_41 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_40_41 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itp_36_37 ; 
+      element[ 1 ]=  new Itp_38_39 ; 
+    } 
+};// end class Sq_40_41 
+
+//---- 57 ---- 
+class Set_96_97 : public SET_node_producer_container { 
+public: // constructor 
+    Set_96_97 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Shift_Reduce); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Stack); 
+    } 
+};// end class Set_96_97 
+
+//---- 58 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_RegExpr_match){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 59 ---- 
+class Comp_26_27 : public Composite_producer { 
+public: // constructor 
+    Comp_26_27 (): Composite_producer(Event_Token_recognition){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_17_18 ; 
+      element[ 1 ]=  new SIMPLE_LIST_24_25_ob(Event_SIMPLE_LIST_24_25); 
+    } 
+};// end class Comp_26_27 
+
+//---- 60 ---- 
+class Comp_58_59 : public Composite_producer { 
+public: // constructor 
+    Comp_58_59 (): Composite_producer(Event_Shift){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_56_57 ; 
+    } 
+};// end class Comp_58_59 
+
+//---- 61 ---- 
+class Comp_64_65 : public Composite_producer { 
+public: // constructor 
+    Comp_64_65 (): Composite_producer(Event_Reduce){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_62_63 ; 
+    } 
+};// end class Comp_64_65 
+
+//---- 62 ---- 
+class Comp_78_79 : public Composite_producer { 
+public: // constructor 
+    Comp_78_79 (): Composite_producer(Event_Shift_Reduce){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_76_77 ; 
+    } 
+};// end class Comp_78_79 
+
+//---- 63 ---- 
+class Comp_94_95 : public Composite_producer { 
+public: // constructor 
+    Comp_94_95 (): Composite_producer(Event_Stack){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_82_83 ; 
+      element[ 1 ]=  new SIMPLE_LIST_92_93_ob(Event_SIMPLE_LIST_92_93); 
+    } 
+};// end class Comp_94_95 
+
+//---- 64 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Source_code){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 65 ---- 
+class Comp_30_31 : public Composite_producer { 
+public: // constructor 
+    Comp_30_31 (): Composite_producer(Event_Lexer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itp_28_29 ; 
+    } 
+};// end class Comp_30_31 
+
+//---- 66 ---- 
+class Comp_50_51 : public Composite_producer { 
+public: // constructor 
+    Comp_50_51 (): Composite_producer(Event_Token_list){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_40_41 ; 
+      element[ 1 ]=  new SIMPLE_LIST_48_49_ob(Event_SIMPLE_LIST_48_49); 
+    } 
+};// end class Comp_50_51 
+
+//---- 67 ---- 
+class Comp_106_107 : public Composite_producer { 
+public: // constructor 
+    Comp_106_107 (): Composite_producer(Event_Parser){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Set_96_97 ; 
+      element[ 1 ]=  new SIMPLE_LIST_104_105_ob(Event_SIMPLE_LIST_104_105); 
+    } 
+};// end class Comp_106_107 
+
+//---- 68 ---- 
+class SCHEMA_compiler1: public Composite_producer {
+public: // constructor 
+    SCHEMA_compiler1(): Composite_producer(Event_compiler1){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_Source_code);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Lexer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_34_35_ob(Event_SIMPLE_LIST_34_35);
+      element[3]= new Composite_secondary_producer(Event_Token_list);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_54_55_ob(Event_SIMPLE_LIST_54_55);
+      element[5]= new Composite_secondary_producer(Event_Parser);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_110_111_ob(Event_SIMPLE_LIST_110_111);
+    } 
+};// end class SCHEMA_compiler1
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example21_compiler1.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_13_14 temp_69; temp_69.harvest();
+    Comp_26_27 temp_70; temp_70.harvest();
+    Comp_58_59 temp_71; temp_71.harvest();
+    Comp_64_65 temp_72; temp_72.harvest();
+    Comp_78_79 temp_73; temp_73.harvest();
+    Comp_94_95 temp_74; temp_74.harvest();
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_75; temp_75.harvest();
+    Comp_30_31 temp_76; temp_76.harvest();
+    Comp_50_51 temp_77; temp_77.harvest();
+    Comp_106_107 temp_78; temp_78.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_compiler1 temp_79; temp_79.harvest();
+   temp_79.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"compiler1"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.mp
new file mode 100644
index 0000000..371f385
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.mp
@@ -0,0 +1,86 @@
+/*  Example 21
+    Compiler front end,
+	bottom-up parser
+	Lexer and parser in batch mode
+
+run for 
+scope 1, 2 traces, less than 1 sec.
+scope 2, 147 traces, approx. time 0.87 sec.
+scope 3, 11988 traces, approx. time 148 sec.
+====================================================*/
+
+SCHEMA compiler1
+
+ROOT Source_code: (* get_characters 
+    				 unget_some_characters *)
+;
+
+/*----------- lexical analysis ----------------*/
+RegExpr_match:  match_string 
+                [ largest_successful_match
+                  put_token ]
+;
+
+Token_recognition: 	
+					get_characters
+					{+ RegExpr_match +}
+					unget_some_characters 
+BUILD{
+	/* only one RegExpr_match succeeds */
+	ENSURE #largest_successful_match == 1;
+};
+
+ROOT Lexer:
+	(+ Token_recognition +)
+;
+
+Source_code, Lexer SHARE ALL get_characters, unget_some_characters;
+
+/*--------- intermediate token list ----------*/
+ROOT Token_list:
+	(+ put_token +) (+ get_token +)
+BUILD{
+	ENSURE #put_token >= #get_token;
+};
+
+Token_list, Lexer SHARE ALL put_token;
+
+/* ----- bottom-up parsing -------------------*/
+Shift:  Push
+        get_token
+;
+
+Reduce: (+<1..2> Pop +) 
+/* to tame the combinatorial explosion for nested iterations */
+    Push 
+;
+
+Shift_Reduce:
+	Push /* push the start non-terminal symbol */ 
+	get_token
+	(+ 	(	Shift 			| 
+			Reduce Put_node	) 
+	+)
+
+	(	Reduce 
+		Put_node
+		Parsing_complete 	|
+ 
+		Report_syntax_error	)
+;
+
+Stack: (*<2 .. 2 * $$scope + 3 > (Push | Pop) *)
+	/* extended iteration to provide 
+		sufficient numbers of Pop and Push events */
+BUILD{	ENSURE FOREACH $x: Pop 
+				#Pop BEFORE $x < #Push BEFORE $x; 
+};
+
+ROOT Parser:    {Shift_Reduce, Stack}
+BUILD{  COORDINATE  $s1: Shift_Reduce,
+                    $s2: Stack
+            DO $s1, $s2 SHARE ALL Pop, Push; OD;
+};
+
+/*------ lexer and parser in the batch mode -------*/
+Token_list, Parser SHARE ALL get_token;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp.txt
new file mode 100644
index 0000000..54340ff
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example21_compiler1 tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.tree
new file mode 100644
index 0000000000000000000000000000000000000000..c20e3ceca5162805af2e8983da2341d894551eb8
GIT binary patch
literal 19968
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.txt
new file mode 100644
index 0000000..3c2abf1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example21_compiler1.txt
@@ -0,0 +1,35 @@
+generating traces for scope 3 
+completed RegExpr_match: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 2 	max 4
+
+completed Token_recognition: 	6 traces (0 MARKed) 	58 events 
+		average 9.66667 ev/trace 	min 7 	max 11
+
+completed Shift: 	1 traces (0 MARKed) 	3 events 
+
+completed Reduce: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Shift_Reduce: 	117 traces (0 MARKed) 	2043 events 
+		average 17.4615 ev/trace 	min 7 	max 24
+
+completed Stack: 	272 traces (0 MARKed) 	2418 events 
+		average 8.88971 ev/trace 	min 3 	max 10
+
+completed Source_code: 	4 traces (0 MARKed) 	16 events 
+		average 4 ev/trace 	min 1 	max 7
+
+completed Lexer: 	258 traces (0 MARKed) 	7276 events 
+		average 28.2016 ev/trace 	min 8 	max 34
+
+completed Token_list: 	6 traces (0 MARKed) 	30 events 
+		average 5 ev/trace 	min 3 	max 7
+
+completed Parser: 	53 traces (0 MARKed) 	1297 events 
+		average 24.4717 ev/trace 	min 11 	max 31
+
+completed compiler1: 	11988 traces (0 MARKed) 	807636 events 
+		average 67.3704 ev/trace 	min 28 	max 80
+
+Elapsed time 386.985 sec, Speed: 2120.98 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.cpp
new file mode 100644
index 0000000..1e5a0d8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.cpp
@@ -0,0 +1,1109 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA compiler2 trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_get_characters
+    , Event_unget_some_characters
+    , Event_match_string
+    , Event_largest_successful_match
+    , Event_put_token
+    , Event_Push
+    , Event_get_token
+    , Event_Pop
+    , Event_Put_node
+    , Event_Parsing_complete
+    , Event_Report_syntax_error
+       // composite events 
+    , Event_RegExpr_match
+    , Event_Token_recognition
+    , Event_Shift
+    , Event_Reduce
+    , Event_Shift_Reduce
+    , Event_Stack
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_24_25
+    , Event_SIMPLE_LIST_34_35
+    , Event_SIMPLE_LIST_72_73
+    , Event_SIMPLE_LIST_84_85
+    , Event_SIMPLE_LIST_94_95
+       // ADD operations 
+       // ROOT events 
+    , Event_Source_code
+    , Event_Lexer
+    , Event_Parser
+       // main schema event 
+    , Event_compiler2 }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "get_characters"
+     , "unget_some_characters"
+     , "match_string"
+     , "largest_successful_match"
+     , "put_token"
+     , "Push"
+     , "get_token"
+     , "Pop"
+     , "Put_node"
+     , "Parsing_complete"
+     , "Report_syntax_error"
+     , "RegExpr_match"
+     , "Token_recognition"
+     , "Shift"
+     , "Reduce"
+     , "Shift_Reduce"
+     , "Stack"
+     , "SIMPLE_LIST_24_25"
+     , "SIMPLE_LIST_34_35"
+     , "SIMPLE_LIST_72_73"
+     , "SIMPLE_LIST_84_85"
+     , "SIMPLE_LIST_94_95"
+     , "Source_code"
+     , "Lexer"
+     , "Parser"
+     , "compiler2" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_largest_successful_match){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_64(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_65(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+bool Quantified_expr_66_67(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int x_variable;
+     int pivot_x_variable = 0; 
+
+     // loop 1 for x_variable 
+     for( x_variable = 0; x_variable < len; x_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ x_variable  * len +  pivot_x_variable 
+]) && 
+           (   
+            (Stack[x_variable]-> name == Event_Pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_64(current_host, x_variable ) < special_function_65(current_host, 
+x_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 5 ---- 
+class SIMPLE_LIST_24_25_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_24_25_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_19(current_host, Root_table[Event_Token_recognition])
+== 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_24_25_ob class
+
+//---- 6 ---- 
+class SIMPLE_LIST_34_35_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_34_35_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Source_code_source = Root_table[Event_Source_code];
+   // lists of shared events for  Source_code 
+  vector<int> Source_code_get_characters_list;
+  vector<int> Source_code_unget_some_characters_list;
+
+  int Lexer_source = Root_table[Event_Lexer];
+   // lists of shared events for  Lexer 
+  vector<int> Lexer_get_characters_list;
+  vector<int> Lexer_unget_some_characters_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Source_code_source ]){ 
+     if( Stack[i]->name == Event_get_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Source_code_get_characters_list.begin();
+          s != Source_code_get_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Source_code_get_characters_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_unget_some_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Source_code_unget_some_characters_list.begin();
+          s != Source_code_unget_some_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Source_code_unget_some_characters_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Lexer_source ]){ 
+     if( Stack[i]->name == Event_get_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Lexer_get_characters_list.begin();
+          s != Lexer_get_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Lexer_get_characters_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_unget_some_characters ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Lexer_unget_some_characters_list.begin();
+          s != Lexer_unget_some_characters_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Lexer_unget_some_characters_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Lexer_get_characters_list.size();
+     if(Source_code_get_characters_list.size() != len_to_compare) throw failed ;
+ 
+   len_to_compare = Lexer_unget_some_characters_list.size();
+     if(Source_code_unget_some_characters_list.size() != len_to_compare) throw 
+failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Lexer_get_characters_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Source_code_get_characters_list[i], Lexer_get_characters_list[i]);
+   } 
+   len_to_compare = Lexer_unget_some_characters_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Source_code_unget_some_characters_list[i], Lexer_unget_some_characters_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_34_35_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_72_73_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_72_73_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_66_67(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_72_73_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_84_85_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_84_85_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s1_variable; // thread variable
+  vector<int> s1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int s2_variable; // thread variable
+  vector<int> s2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for s1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s1_variable = i; 
+      if( s1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Shift_Reduce))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s1_variable_list.begin(); s != s1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s1_variable_list.size();
+  if(thread_length != s1_variable_list.size()) throw failed;
+
+  // preparing thread for s2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s2_variable = i; 
+      if( s2_variable_list.size() == thread_length){
+         s1_variable = 0; } 
+      else{ 
+         s1_variable = s1_variable_list[s2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Stack))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s2_variable_list.begin(); s != s2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s2_variable_list.size();
+  if(thread_length != s2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s1_variable= s1_variable_list[i];
+    s2_variable= s2_variable_list[i];
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+   // lists of shared events for  s1_variable 
+  vector<int> s1_variable_Pop_list;
+  vector<int> s1_variable_Push_list;
+   // lists of shared events for  s2_variable 
+  vector<int> s2_variable_Pop_list;
+  vector<int> s2_variable_Push_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + s1_variable ]){ 
+     if( Stack[i]->name == Event_Pop ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s1_variable_Pop_list.begin();
+          s != s1_variable_Pop_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s1_variable_Pop_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Push ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s1_variable_Push_list.begin();
+          s != s1_variable_Push_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s1_variable_Push_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + s2_variable ]){ 
+     if( Stack[i]->name == Event_Pop ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s2_variable_Pop_list.begin();
+          s != s2_variable_Pop_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s2_variable_Pop_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_Push ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  s2_variable_Push_list.begin();
+          s != s2_variable_Push_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) s2_variable_Push_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = s2_variable_Pop_list.size();
+     if(s1_variable_Pop_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = s2_variable_Push_list.size();
+     if(s1_variable_Push_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = s2_variable_Pop_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(s1_variable_Pop_list[i], s2_variable_Pop_list[i]);
+   } 
+   len_to_compare = s2_variable_Push_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(s1_variable_Push_list[i], s2_variable_Push_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_84_85_ob class
+
+//---- 9 ---- 
+class SIMPLE_LIST_94_95_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_94_95_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int produce_token_variable; // thread variable
+  vector<int> produce_token_variable_list; // list of coordinated events
+  int  Lexer_source = Root_table[Event_Lexer]; // source of coordination 
+  int consume_token_variable; // thread variable
+  vector<int> consume_token_variable_list; // list of coordinated events
+  int  Parser_source = Root_table[Event_Parser]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for produce_token_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      produce_token_variable = i; 
+      if( produce_token_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Lexer_source ]){ 
+       if( (  (Stack[i]->name == Event_put_token))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = produce_token_variable_list.begin(); s != produce_token_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) produce_token_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source produce_token_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = produce_token_variable_list.size();
+  if(thread_length != produce_token_variable_list.size()) throw failed;
+
+  // preparing thread for consume_token_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      consume_token_variable = i; 
+      if( consume_token_variable_list.size() == thread_length){
+         produce_token_variable = 0; } 
+      else{ 
+         produce_token_variable = produce_token_variable_list[consume_token_variable_list.size()];
+}; 
+      if(in_matrix[i * len +  Parser_source ]){ 
+       if( (  (Stack[i]->name == Event_get_token))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = consume_token_variable_list.begin(); s != consume_token_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) consume_token_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source consume_token_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = consume_token_variable_list.size();
+  if(thread_length != consume_token_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    produce_token_variable= produce_token_variable_list[i];
+    consume_token_variable= consume_token_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(consume_token_variable,produce_token_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_94_95_ob class
+
+//---- 10 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_largest_successful_match); 
+      element[ 1 ]=  new Atomic_producer(Event_put_token); 
+    } 
+};// end class Sq_7_8 
+
+//---- 11 ---- 
+class Opt_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_9_10 
+
+//---- 12 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_match_string); 
+      element[ 1 ]=  new Opt_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 13 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_characters); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_RegExpr_match); 
+      element[ 2 ]=  new Atomic_producer(Event_unget_some_characters); 
+    } 
+};// end class Sq_17_18 
+
+//---- 14 ---- 
+class Sq_36_37 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_36_37 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+    } 
+};// end class Sq_36_37 
+
+//---- 15 ---- 
+class Ct_96_97 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_96_97 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Pop); 
+      element[ 1 ]=  new Atomic_producer(Event_Pop); 
+    } 
+};// end class Ct_96_97 
+
+//---- 16 ---- 
+class Itp_40_41 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_40_41 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Pop); 
+      element[ 1 ]=  new Ct_96_97 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itp_40_41 
+
+//---- 17 ---- 
+class Sq_42_43 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_42_43 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itp_40_41 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Push); 
+    } 
+};// end class Sq_42_43 
+
+//---- 18 ---- 
+class Sq_46_47 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_46_47 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Reduce); 
+      element[ 1 ]=  new Atomic_producer(Event_Put_node); 
+    } 
+};// end class Sq_46_47 
+
+//---- 19 ---- 
+class Alt_48_49 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_48_49 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Shift); 
+      element[ 1 ]=  new Sq_46_47 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_48_49 
+
+//---- 20 ---- 
+class Sq_52_53 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_52_53 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Reduce); 
+      element[ 1 ]=  new Atomic_producer(Event_Put_node); 
+      element[ 2 ]=  new Atomic_producer(Event_Parsing_complete); 
+    } 
+};// end class Sq_52_53 
+
+//---- 21 ---- 
+class Alt_54_55 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_54_55 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_52_53 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Report_syntax_error); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_54_55 
+
+//---- 22 ---- 
+class Sq_56_57 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_56_57 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_get_token); 
+      element[ 2 ]=  new Alt_48_49 ; 
+      element[ 3 ]=  new Alt_54_55 ; 
+    } 
+};// end class Sq_56_57 
+
+//---- 23 ---- 
+class Alt_60_61 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_60_61 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Push); 
+      element[ 1 ]=  new Atomic_producer(Event_Pop); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_60_61 
+
+//---- 24 ---- 
+class Ct_98_99 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_98_99 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_60_61 ; 
+      element[ 1 ]=  new Alt_60_61 ; 
+    } 
+};// end class Ct_98_99 
+
+//---- 25 ---- 
+class Ct_100_101 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_100_101 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_60_61 ; 
+      element[ 1 ]=  new Alt_60_61 ; 
+      element[ 2 ]=  new Alt_60_61 ; 
+    } 
+};// end class Ct_100_101 
+
+//---- 26 ---- 
+class Ct_102_103 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_102_103 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Alt_60_61 ; 
+      element[ 1 ]=  new Alt_60_61 ; 
+      element[ 2 ]=  new Alt_60_61 ; 
+      element[ 3 ]=  new Alt_60_61 ; 
+    } 
+};// end class Ct_102_103 
+
+//---- 27 ---- 
+class Ct_104_105 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_104_105 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Alt_60_61 ; 
+      element[ 1 ]=  new Alt_60_61 ; 
+      element[ 2 ]=  new Alt_60_61 ; 
+      element[ 3 ]=  new Alt_60_61 ; 
+      element[ 4 ]=  new Alt_60_61 ; 
+    } 
+};// end class Ct_104_105 
+
+//---- 28 ---- 
+class Itr_62_63 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_62_63 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Ct_98_99 ; 
+      element[ 1 ]=  new Ct_100_101 ; 
+      element[ 2 ]=  new Ct_102_103 ; 
+      element[ 3 ]=  new Ct_104_105 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_62_63 
+
+//---- 29 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_characters); 
+      element[ 1 ]=  new Atomic_producer(Event_unget_some_characters); 
+    } 
+};// end class Sq_1_2 
+
+//---- 30 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 31 ---- 
+class Set_76_77 : public SET_node_producer_container { 
+public: // constructor 
+    Set_76_77 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Shift_Reduce); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Stack); 
+    } 
+};// end class Set_76_77 
+
+//---- 32 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_RegExpr_match){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 33 ---- 
+class Comp_26_27 : public Composite_producer { 
+public: // constructor 
+    Comp_26_27 (): Composite_producer(Event_Token_recognition){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_17_18 ; 
+      element[ 1 ]=  new SIMPLE_LIST_24_25_ob(Event_SIMPLE_LIST_24_25); 
+    } 
+};// end class Comp_26_27 
+
+//---- 34 ---- 
+class Comp_38_39 : public Composite_producer { 
+public: // constructor 
+    Comp_38_39 (): Composite_producer(Event_Shift){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_36_37 ; 
+    } 
+};// end class Comp_38_39 
+
+//---- 35 ---- 
+class Comp_44_45 : public Composite_producer { 
+public: // constructor 
+    Comp_44_45 (): Composite_producer(Event_Reduce){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_42_43 ; 
+    } 
+};// end class Comp_44_45 
+
+//---- 36 ---- 
+class Comp_58_59 : public Composite_producer { 
+public: // constructor 
+    Comp_58_59 (): Composite_producer(Event_Shift_Reduce){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_56_57 ; 
+    } 
+};// end class Comp_58_59 
+
+//---- 37 ---- 
+class Comp_74_75 : public Composite_producer { 
+public: // constructor 
+    Comp_74_75 (): Composite_producer(Event_Stack){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_62_63 ; 
+      element[ 1 ]=  new SIMPLE_LIST_72_73_ob(Event_SIMPLE_LIST_72_73); 
+    } 
+};// end class Comp_74_75 
+
+//---- 38 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Source_code){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 39 ---- 
+class Comp_30_31 : public Composite_producer { 
+public: // constructor 
+    Comp_30_31 (): Composite_producer(Event_Lexer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Token_recognition); 
+    } 
+};// end class Comp_30_31 
+
+//---- 40 ---- 
+class Comp_86_87 : public Composite_producer { 
+public: // constructor 
+    Comp_86_87 (): Composite_producer(Event_Parser){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Set_76_77 ; 
+      element[ 1 ]=  new SIMPLE_LIST_84_85_ob(Event_SIMPLE_LIST_84_85); 
+    } 
+};// end class Comp_86_87 
+
+//---- 41 ---- 
+class SCHEMA_compiler2: public Composite_producer {
+public: // constructor 
+    SCHEMA_compiler2(): Composite_producer(Event_compiler2){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[0]= new Composite_secondary_producer(Event_Source_code);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Lexer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_34_35_ob(Event_SIMPLE_LIST_34_35);
+      element[3]= new Composite_secondary_producer(Event_Parser);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_94_95_ob(Event_SIMPLE_LIST_94_95);
+    } 
+};// end class SCHEMA_compiler2
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example22_compiler2.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_13_14 temp_42; temp_42.harvest();
+    Comp_26_27 temp_43; temp_43.harvest();
+    Comp_38_39 temp_44; temp_44.harvest();
+    Comp_44_45 temp_45; temp_45.harvest();
+    Comp_58_59 temp_46; temp_46.harvest();
+    Comp_74_75 temp_47; temp_47.harvest();
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_48; temp_48.harvest();
+    Comp_30_31 temp_49; temp_49.harvest();
+    Comp_86_87 temp_50; temp_50.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_compiler2 temp_51; temp_51.harvest();
+   temp_51.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"compiler2"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.mp
new file mode 100644
index 0000000..b18d9af
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.mp
@@ -0,0 +1,80 @@
+/*  Example 22
+    Compiler front end,
+	bottom-up parser
+	Lexer and parser in interaction mode
+
+run for 
+scope 1, 2 traces, less than 1 sec.
+scope 2, 111 traces, approx. time 0.65 sec.
+scope 3, 4860 traces, approx. time 55 sec.
+====================================================*/
+
+SCHEMA compiler2
+
+ROOT Source_code: (* get_characters 
+    				 unget_some_characters *)
+;
+
+/*----------- lexical analysis ----------------*/
+RegExpr_match:  match_string 
+                [   largest_successful_match
+                    put_token ]
+;
+
+Token_recognition: 	
+					get_characters
+					{+ RegExpr_match +}
+					unget_some_characters 
+BUILD{
+	/* only one RegExpr_match succeeds */
+	ENSURE #largest_successful_match == 1;
+};
+
+ROOT Lexer:
+	(+ Token_recognition +)
+;
+
+Source_code, Lexer SHARE ALL get_characters, unget_some_characters;
+
+/* ----- bottom-up parsing -------------------*/
+Shift:  Push
+        get_token
+;
+
+Reduce: (+<1..2> Pop +) 
+        /* to tame the combinatorial explosion for nested iterations */
+        Push 
+;
+
+Shift_Reduce:
+	Push /* push the start non-terminal symbol */ 
+	get_token
+	(+ 	(	Shift 		| 
+			Reduce 
+			Put_node	) 
+	+)
+
+	(	Reduce 
+		Put_node
+		Parsing_complete 	|
+ 
+		Report_syntax_error	)
+;
+
+Stack: (*<2 .. 2 * $$scope + 3 > (Push | Pop) *)
+	/* extended iteration to provide 
+		sufficient numbers of Pop and Push events */
+BUILD{	ENSURE FOREACH $x: Pop 
+				#Pop BEFORE $x < #Push BEFORE $x; 
+};
+
+ROOT Parser:    {Shift_Reduce, Stack}
+BUILD{  COORDINATE  $s1: Shift_Reduce,
+                    $s2: Stack
+            DO $s1, $s2 SHARE ALL Pop, Push; OD;
+};
+
+/*------ lexer and parser in the interactive mode -------*/
+COORDINATE 	$produce_token: put_token FROM Lexer,
+			$consume_token: get_token FROM Parser
+	DO ADD $produce_token PRECEDES $consume_token; OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp.txt
new file mode 100644
index 0000000..c5f4af0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example22_compiler2 tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.tree
new file mode 100644
index 0000000000000000000000000000000000000000..6a2cd6fd9d7ec3f04d11578945d9d49593f3127e
GIT binary patch
literal 15872
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
Z@>EREiR~C2-ZVTkJof+V{{`0ne*hcEMg{-?

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.txt
new file mode 100644
index 0000000..3db135a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example22_compiler2.txt
@@ -0,0 +1,30 @@
+generating traces for scope 1 
+completed RegExpr_match: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 2 	max 4
+
+completed Token_recognition: 	1 traces (0 MARKed) 	7 events 
+
+completed Shift: 	1 traces (0 MARKed) 	3 events 
+
+completed Reduce: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Shift_Reduce: 	9 traces (0 MARKed) 	99 events 
+		average 11 ev/trace 	min 7 	max 14
+
+completed Stack: 	21 traces (0 MARKed) 	108 events 
+		average 5.14286 ev/trace 	min 3 	max 6
+
+completed Source_code: 	2 traces (0 MARKed) 	4 events 
+		average 2 ev/trace 	min 1 	max 3
+
+completed Lexer: 	1 traces (0 MARKed) 	8 events 
+
+completed Parser: 	5 traces (0 MARKed) 	79 events 
+		average 15.8 ev/trace 	min 11 	max 19
+
+completed compiler2: 	2 traces (0 MARKed) 	56 events 
+		average 28 ev/trace 	min 25 	max 31
+
+Elapsed time 0.031716 sec, Speed: 11886.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.cpp
new file mode 100644
index 0000000..338732b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.cpp
@@ -0,0 +1,823 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Shopping_spree trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > price_number_attribute;
+       map<int,  float > total_cost_number_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( price_number_attribute[event1] != price_number_attribute[event2]) 
+    return false; 
+  if( total_cost_number_attribute[event1] != total_cost_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    price_number_attribute.clear();
+    total_cost_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!price_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("price",price_number_attribute));
+  if(!total_cost_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("total_cost",total_cost_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "price"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         price_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "total_cost"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         total_cost_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Buy
+    , Event_Sell_Item_1
+    , Event_Sell_Item_2
+    , Event_Sell_Item_3
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_21_22
+    , Event_SIMPLE_LIST_41_42
+    , Event_SIMPLE_LIST_66_67
+       // ADD operations 
+       // ROOT events 
+    , Event_Buyer
+    , Event_Shop_A
+    , Event_Shop_B
+       // main schema event 
+    , Event_Shopping_spree }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Buy"
+     , "Sell_Item_1"
+     , "Sell_Item_2"
+     , "Sell_Item_3"
+     , "SIMPLE_LIST_21_22"
+     , "SIMPLE_LIST_41_42"
+     , "SIMPLE_LIST_66_67"
+     , "Buyer"
+     , "Shop_A"
+     , "Shop_B"
+     , "Shopping_spree" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_58(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Buy){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_59(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Buy){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_62(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Buy){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_63(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Buy){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- for aggregate operation SUM 
+float aggregate_op_55(Coordinate * current_host, int  pivot){ 
+    int item_variable ; 
+    float temp = 0 ; 
+// #event traversal performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+     bool first = true; 
+
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     // create list of selected events 
+     for( item_variable = 0; item_variable < len; item_variable ++){ 
+       if(current_host->in_matrix[ item_variable * len +  pivot]){ 
+         if(   Stack[item_variable]->name == Event_Sell_Item_1|| Stack[item_variable]->name == Event_Sell_Item_2
+|| Stack[item_variable]->name == Event_Sell_Item_3){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = current_host->eq_matrix[ item_variable * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found 
+        ) {selected_list.push_back( item_variable ); 
+    temp = temp + 
+       price_number_attribute[item_variable] ;}; 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return temp; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 6 ---- 
+class SIMPLE_LIST_21_22_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_21_22_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell_Item_1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   // attribute price assignment 
+    price_number_attribute[s_variable]=8 ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell_Item_2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   // attribute price assignment 
+    price_number_attribute[s_variable]=20 ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_21_22_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_41_42_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_41_42_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell_Item_2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   // attribute price assignment 
+    price_number_attribute[s_variable]=22 ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell_Item_3))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   // attribute price assignment 
+    price_number_attribute[s_variable]=30 ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_41_42_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_66_67_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_66_67_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int sell_variable; // thread variable
+  vector<int> sell_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int buy_variable; // thread variable
+  vector<int> buy_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for sell_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      sell_variable = i; 
+      if( sell_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Sell_Item_1)|| (Stack[i]->name == Event_Sell_Item_2)|| (Stack[i]->name == Event_Sell_Item_3)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = sell_variable_list.begin(); s != sell_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) sell_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source sell_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = sell_variable_list.size();
+  if(thread_length != sell_variable_list.size()) throw failed;
+
+  // preparing thread for buy_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      buy_variable = i; 
+      if( buy_variable_list.size() == thread_length){
+         sell_variable = 0; } 
+      else{ 
+         sell_variable = sell_variable_list[buy_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Buy))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = buy_variable_list.begin(); s != buy_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) buy_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source buy_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = buy_variable_list.size();
+  if(thread_length != buy_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    sell_variable= sell_variable_list[i];
+    buy_variable= buy_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(sell_variable,buy_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<" Trace #";
+     convert << 
+       trace_id_attribute ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   // attribute total_cost assignment 
+    total_cost_number_attribute[0]=aggregate_op_55(current_host, 0 ) ; 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Bought ";
+     convert << special_function_62(current_host, Root_table[Event_Shopping_spree])
+; 
+     convert <<" items. Total purchase cost is: ";
+     convert << 
+       total_cost_number_attribute[0] ; 
+     convert <<" average cost: ";
+     convert << (
+       total_cost_number_attribute[0] / (float)special_function_63(current_host, Root_table[Event_Shopping_spree])
+) ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_66_67_ob class
+
+//---- 9 ---- 
+class Ct_68_69 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_68_69 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Buy); 
+      element[ 1 ]=  new Atomic_producer(Event_Buy); 
+    } 
+};// end class Ct_68_69 
+
+//---- 10 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Buy); 
+      element[ 2 ]=  new Ct_68_69 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 11 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Sell_Item_1); 
+      element[ 1 ]=  new Atomic_producer(Event_Sell_Item_2); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 12 ---- 
+class Itr_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_5_6 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_7_8 
+
+//---- 13 ---- 
+class Alt_25_26 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_25_26 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Sell_Item_2); 
+      element[ 1 ]=  new Atomic_producer(Event_Sell_Item_3); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_25_26 
+
+//---- 14 ---- 
+class Itr_27_28 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_27_28 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_25_26 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_27_28 
+
+//---- 15 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Buyer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 16 ---- 
+class Comp_23_24 : public Composite_producer { 
+public: // constructor 
+    Comp_23_24 (): Composite_producer(Event_Shop_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_7_8 ; 
+      element[ 1 ]=  new SIMPLE_LIST_21_22_ob(Event_SIMPLE_LIST_21_22); 
+    } 
+};// end class Comp_23_24 
+
+//---- 17 ---- 
+class Comp_43_44 : public Composite_producer { 
+public: // constructor 
+    Comp_43_44 (): Composite_producer(Event_Shop_B){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_27_28 ; 
+      element[ 1 ]=  new SIMPLE_LIST_41_42_ob(Event_SIMPLE_LIST_41_42); 
+    } 
+};// end class Comp_43_44 
+
+//---- 18 ---- 
+class SCHEMA_Shopping_spree: public Composite_producer {
+public: // constructor 
+    SCHEMA_Shopping_spree(): Composite_producer(Event_Shopping_spree){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Buyer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Shop_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Shop_B);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_66_67_ob(Event_SIMPLE_LIST_66_67);
+    } 
+};// end class SCHEMA_Shopping_spree
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example23_number_attributes.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_19; temp_19.harvest();
+    Comp_23_24 temp_20; temp_20.harvest();
+    Comp_43_44 temp_21; temp_21.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Shopping_spree temp_22; temp_22.harvest();
+   temp_22.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Shopping_spree"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.mp
new file mode 100644
index 0000000..a040553
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.mp
@@ -0,0 +1,38 @@
+/* Example23.mp number attribute test */
+
+SCHEMA Shopping_spree
+
+ROOT Buyer: (*<0.. 2 * $$scope>  Buy *);
+/* Increase the iteration to ensure enough Buy events to coordinate with both Shops */
+
+ATTRIBUTES{number 	price, total_cost;};
+
+ROOT Shop_A: 	(* (Sell_Item_1 | Sell_Item_2) *)
+/* Initializing attribute values in a context of composite event where these are used */
+BUILD{  COORDINATE 	$s: Sell_Item_1 	DO $s.price:= 8; 	OD;
+        COORDINATE 	$s: Sell_Item_2 	DO $s.price:= 20; 	OD; 
+};
+
+ROOT Shop_B: 	(* (Sell_Item_2 | Sell_Item_3) *)
+
+/* In Shop_B the cost of Item_2 may be different */
+BUILD{  COORDINATE 	$s: Sell_Item_2 	DO $s.price:= 22; 	OD; 
+        COORDINATE 	$s: Sell_Item_3 	DO $s.price:= 30; 	OD; 
+};
+
+/* Schema’s attribute total_cost is automatically initialized by 0.0. 
+    Absence of event reference means THIS by default  */
+COORDINATE 	$sell: (Sell_Item_1 | Sell_Item_2 | Sell_Item_3),
+            $buy: 	 Buy
+    DO /* to render the dependency between sell and buy events */
+        ADD $buy PRECEDES $sell;
+    OD;
+
+/* example of pre-defined attribute use */
+SAY(" Trace #" trace_id);
+
+/* use of aggregate operation to calculate total_cost as an attribute of the whole schema */
+total_cost := SUM{ $item: (Sell_Item_1 | Sell_Item_2 | Sell_Item_3) APPLY $item.price};
+
+SAY("Bought " #Buy " items. Total purchase cost is: " total_cost 
+    " average cost: " total_cost/#Buy);
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp.txt
new file mode 100644
index 0000000..edbab33
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example23_number_attributes tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.tree
new file mode 100644
index 0000000000000000000000000000000000000000..eab922f373c18cf3e2790721911a92e18856b7e6
GIT binary patch
literal 10752
zcmd5?4UAOP6}~$^Z)bn_w@A_A2-KpbEAzVxQgvbZS<BCMceRR^$L#Lg-LbPX<IGzW
z(i&<=V+ke37(<LTlp1OcF@`j>A=aQVwk3pEqQ)9SD6z&6()7nr(wO)9oqO+__wKy6
zvovi<FL`rj?)}bp&OP_s^X_{~e-mS2{F}i<vmoqN#w_&P?T{hJ`M4G^rm-u`3NwbG
zNJQf8#TZ+TD~s!H(MfvLVz_{15&W~DVBZ72DC8zc4RQ-)GvxiahRBa5jwjvzty>4}
z0)6v0AFk-fP>&B+o(dOYm?m!)oVF{BJzA=KhorZ`b!N3t93T-RiW|bgo7DzA6aARG
z{Wv57YCkE)2<60U&Ezg-KaKI37$-SPNc$NXr`h=Z0{Z7bz63cJ@)+bi$k%YaP4=H{
zB6}LUB~11-rbWpf_v^YkzrFyScc4#ecove@^<CGmn*UzhIf*+z4ep}ET@pBrjV~O;
z*9cb8x*m2gzedd$zsumG_>n%vua&Z=Za&CE`#Ow&5poeE=4&r=aZa4Ah3HRW{07L?
zkT*iEZ(?>|6IR2`GwVy}-zN0yeT^V1tVI|ff&NX9#bBJqIv=5Y<?)a6oNscFcG>yn
zvODqT_?tOC<m8{d8$Rw;b?oy(m*cVDFzVtD0DrI!FV{nfuXlZ&JUA@$ro=gUaC91+
zlLyBGa7z%klTBhjz1hSH`KoEZH4W~J#Jw{OuEGT0hc1p{M6HCqZhwq*TMGFJ<d-2o
zMXWB;`iJ>m@!>x6;4U}7QC>KFSP7o*w}8LhSw-%G@55(zK6uE#1(08XTo_{Z(h$7!
z)T3qS@4)!2LV8Ixrax%iCiaJu_vWs$VXp|WVs65)lOZ-#8rfy1!Fwn1x^+mwZIrls
zfE%o{PxTP%#_J)Zw@t~nUGnV!-@^fXSYOTu>23Js?i<q|OIzkEaBluT4jc9RMdqu5
zdlI<%eIoN!V?X*S)qTFdP+t_ir=j<}>Wh=V9FIDr;Ew?RY8_tYF>vmE^8|2j;W~rs
z1A(_?9!J^I-(%Yde^AFXmN>n>f9vK5*3bGX*5g8mjaEt%_N5Tx>v&nU$NfUxtKqLm
zd?-9M9`&(?Zx0Lp`N4Q!9y|Li4*#5ev6%Ll-8yjZW-$-cS<<WBZ<b>o%jJAJAisv+
zU1F5{Fdi#c>^0K<CX9Dre2b$kvPNV3L)PsSpC^84t&s6bkR5mb@c8tF#eV2l_4&R{
zf_G5u_vR#h=kZJh?6d8XcSl(4v!O7v3$({jM~HXlRq&=8@a~bkPk?v7hxggWyuN*T
zNc!p2gTvrEDpo_O8xGE?2giXs*#PJ4^HadRtKzIBnE$!3*yrc5ei{6}0NkYpxXTiE
z1-KApfm^Q>zIL1^iEm~EwX*?kvBWI}uA>32OX5}m*CTLFgt^@<5iyUxh`8VMi>Q%*
zIKJ}6aSwrq&cWLuDW7+M@8Je~rsUfx_)s6*`nShf8EF85_B}Q4`DM5?QMRA(V+p6R
zH_p=jP<Z$Hu{P=hH6QN}{8+*%d_jJ;i|G0Io($&W`|B1@{n-~0_2-$$)b*;9`w@25
z$$kN`K7{MAYr{req2}}BMHj;X^23{N{QPi4uH#FPU5NiN@c$x$xDLH1>Q3fkI`3+1
z+tb!clE<3peDAG4)+*?|4*feIPpWn`_Sq3@wX82+=ksyzYj48VX%%myzEI=!<xcRu
zua5IU&xg;C^U@DI3wRrk|6O(VFTnmKmET4kqE@qiSsnLs(s!SI78P;u*?(#U#Q}Nc
zu4gF9__?K>p1MS{QMaho?9X?{1Va4;pBv9O_-<42HtHL-8edu+SJ~>~b0_#Vs(2f9
zP~q!W$Lskt_LtkOyXE?Kt9fdz!TLTFtWW;(bKPk0xMPQ}>)HU`a<E>FcX#l(!rK$T
zyEj;`#(N-mT;W|8z<V%Quf}^gcwFIKPrUBAz}kTL9z{NGggmb5*LY8={SKcaHFn3b
zf$j&e@A2H)TbCcFkRPX2eOul)G}aWi?qS#stLI_c`|H#Ds-9zyzek}u^g&eAMLZW&
z#>@Qqm7k|S6nfmBZ*YI2^qrdh5&WU&-*b@Xab3i9Nn9E`)JAp7dB3BvaJ%}u_TI<6
zKLy=KP`9c1>h0y=`Dm=YjoyQ3Y+)O{2hrHFHhOQMvE}myH}(!_?2m6)n^eA?xeBwd
zOvTsTX5o2>){me25T8aZ#txxGi1$>4^yY_hZv3ZeZ%W+fDo&|Cc=2V^%P&uJ>UWI&
z_&9Y>$%}}1+myJFic{=Ia2m(uZMLl6u6_5t2%o>E;vHRaf)l?uE~bg|bt~?S^t{<F
z^kCnu=ksA-UJj2f>$f*wrnBqZaX7C2{Jj7+7GrmL>;7`|;qo?H*7^U~?jCtQ?|_Z2
zI=gGohs)b+c|Y);Gc0-z>e0k=-FiqmH}*ky8|QQP+lb0Vytb_WKE9&lD@(rJ;M-fr
zcOZaI)_ot}LCN==<a-f(uhjAVDu7ScdmrDMlJ70acLsbP)bU*i;FERU$9GBc{aNx|
z0bi&Y`^oeCKyhww7IB^lNpW7#jC^UPd~xHv+&R&^D`(650PS9DGwoBCS2-tU!Ate|
zZt$*Y#;)xRi8}VzR(gL!GqSc&-G|&NWnTlnO_J|E@ZH}m^uCGYhR61h-%r<L@y)I0
zu!r-q#!_KXZ@a@(Z(GTae(IkW74`S#DAixL|I}h@fX2_<WZ|I8{lB;FK1c7CaCw`v
z|2fZnb@-rj?E<mZRJX0GIM+J<Df>L=yxLL6JI#63;pOwh`Af-*f<N9i_A51S9pTSo
zQ#@br`F#udQS@_p<45@=PLf!kCBUDQ@5{=~;`y^8^aK6;uAkdR9k`}`J}&*-)4<Pt
z0e+&sTvI>yOFs`Z@bh4RpQu~c)X(RnpU->z+`#kGy}uqojd%&y%dWpR>f!&wPhzEW
zv$8*qx^}ryeAuY7)UMh7ctytP)hX<r@cT&qX>4|@b-(A__*yWIu+)6>nUeQ6ZB+NK
z_B`slue{#Oa+R@!eUi&0{e8hcMfa6I$U6SL9_s;Fm$%ie$GiSH*tNQGYedw0tmA`q
zdglW4YWuiFtLZ&dr}t@qUTt4Jpow!m?0vgV?{5KmwLJe*v$$XVy;<08iV2=fOgx`}
zZ+jiz=K*{&A2jy6pNsqP&rZ<$n<#5)hv3!LIaez8b1f$B=d)wXo*Q%5@kacyph2T`
zbi4?BFSrPN%VOMaLtGNL)mMRA4_x0>;I;ubB5=z6rHFaz*stZ7c+a_8%<t;+{2%{T
zo@=b~eTu)ApFh`qH#n}f=ibL-wdXqi+`C8myU*`0=i5IG-+?;5rzGEVQ}8`M4c`lO
ze1|08%Tw?jordp~I=)vW-wC0ov0qoadwSG5{F<MW)|DEs+dHJh`9@=x!t}iCJ#X;*
ze;fI*6#4L5Y5$Z*Kj+n79cie4IzWHOtAC@`Q2$JT{;*fS&{+SS0R0hlzLtS`p2d7e
zAwPl~gZ#vq?@xYcjnn&q&%)HBvF?48w=vce!GAk|T&mHlOjywtLHhFfQ^A8FrTK6d
zgK-)=8?*9qz8j_70RR4r>;Eu3)2hSc#zZb=6il7|J|C?Pm&(S>f$>tgoG*^))pEr!
zTJy#7q^XbQ3r1UM(saH@E2WZIoslz36Zv7?*l85a>fCC6qFgZa+_0H16*=Xib&ut!
zFPYMdlM_QmMbDXLB|kK28r6=8@(m4!qbT)8MI&$YZXwpR4H$)j-fJ2YdcyNPIkRXy
zs*^{$nHwq?b5uu4<?5Vj*%;2}3i{||k$YFYJ~uX2F~)MHQS0L#&l%|5+_!0+zNvR$
zP|s%dY-dYl5|g4A4=wbzO{YJxdyJ<PjbuVkCY7FaLQf~>)!WxIT>*V7{e9WwEZ0+n
zB9ocTqwNV~+gPDAL~|?T#$s#nhao+sr(5|K#62m$rqP*h!2(xuv^-kHs7@Bl)?#jF
z9#KF~fbEoKj#rG_NVHtZ4;!s!$%L8V5>jO}SEwS+M!^t^UB<c^m0}F_H&08TRZEkV
zVWXwyyC&8@mIn-3Q)%usD>{NTOLS1e@bu&ToqAUbjVC+xWLKM@;;S<wSFPs9iW5jT
zy;Pn7-3i?>IkT2pe2JpvLM~ryE0i8Z)(w>=iz985Wz1fF&lSjDOnj%&+>H&8(X+G5
z6~u8UU&x!gxV07<NM`h8wsq~+t^GZ{Te=6=&0bq7RYvkqHS|PEPo!I`H5Zhzm3nf8
zw<DF(Q)#7RrJhz0>6LnB#S8?sP-AQ#n%q_U(So<mdM2f3($~3jbtA%uvuQn>X{imz
z;)9jkun}J}w|j7~U+*3m*sx{upq|O<na<`lrOB~zGaipq9IGAiL0aE<84EX_s~T}y
z=y<-mDn2Wo+lf^h6J4v~vTU8dD{4%X&0Vpo@yMi695!NWO+DMCXIIAV<?X$@W>t3;
zhsP_WVtzNzv6xBT==qW69%D3z{8P3{BB3YL&6DWV6I}`>mC#cvCe^8@R7|>4Pj}6z
z7zJ)qE@e-Tp3dm$>>MQ!EA_+*H8hEgp2(_Q$(4Gl4wcI2scdvKU#Xf})fg@nM`Dh>
a7=BgFT+xj6^{-pIu4mnVNS6Pr_5T+&8m#F6

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.txt
new file mode 100644
index 0000000..1287f21
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example23_number_attributes.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Buyer: 	3 traces (0 MARKed) 	6 events 
+		average 2 ev/trace 	min 1 	max 3
+
+completed Shop_A: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed Shop_B: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed Shopping_spree: 	9 traces (0 MARKed) 	78 events 
+		average 8.66667 ev/trace 	min 6 	max 10
+
+Elapsed time 0.000878 sec, Speed: 107062 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.cpp
new file mode 100644
index 0000000..0557e78
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.cpp
@@ -0,0 +1,690 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA RedGreen trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > selection_probability_number_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( selection_probability_number_attribute[event1] != selection_probability_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    selection_probability_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!selection_probability_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("selection_probability",selection_probability_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "selection_probability"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         selection_probability_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Select_Red
+    , Event_Select_Green
+    , Event_RRR
+    , Event_RRG
+    , Event_RGG
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_49_50
+       // ADD operations 
+       // ROOT events 
+    , Event_Selection
+       // main schema event 
+    , Event_RedGreen }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Select_Red"
+     , "Select_Green"
+     , "RRR"
+     , "RRG"
+     , "RGG"
+     , "SIMPLE_LIST_49_50"
+     , "Selection"
+     , "RedGreen" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_11(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_RRR){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_12(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Select_Red){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_13(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_RRG){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_14(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Select_Red){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_15(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_RGG){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_16(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Select_Red){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_23(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Select_Red){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_24(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Select_Red|| Stack[i]->name == Event_Select_Green
+){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_29(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Select_Green){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_30(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_Select_Red|| Stack[i]->name == Event_Select_Green
+){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 11 ---- 
+class SIMPLE_LIST_49_50_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_49_50_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( ( ( special_function_11(current_host, Root_table[Event_RedGreen])== 1
+ )== ( special_function_12(current_host, Root_table[Event_RedGreen])== 3 ))&& ( 
+( special_function_13(current_host, Root_table[Event_RedGreen])== 1 )== ( special_function_14(current_host, Root_table[Event_RedGreen])
+== 2 )))&& ( ( special_function_15(current_host, Root_table[Event_RedGreen])== 1
+ )== ( special_function_16(current_host, Root_table[Event_RedGreen])== 1 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int res_variable; // thread variable
+  vector<int> res_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for res_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      res_variable = i; 
+      if( res_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_RRR)|| (Stack[i]->name == Event_RRG)|| (Stack[i]->name == Event_RGG)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = res_variable_list.begin(); s != res_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) res_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source res_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = res_variable_list.size();
+  if(thread_length != res_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    res_variable= res_variable_list[i];
+   // attribute selection_probability assignment 
+    selection_probability_number_attribute[0]=1 ; 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int s_variable; // thread variable
+  vector<int> s_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for s_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      s_variable = i; 
+      if( s_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Select_Red)|| (Stack[i]->name == Event_Select_Green)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = s_variable_list.begin(); s != s_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) s_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source s_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = s_variable_list.size();
+  if(thread_length != s_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    s_variable= s_variable_list[i];
+   if( (Stack[s_variable]->name == Event_Select_Red)){ 
+   // attribute selection_probability assignment 
+    selection_probability_number_attribute[0]*=(( 3 - special_function_23(current_host, 
+s_variable ) )/ (float)( 5 - special_function_24(current_host, s_variable ) )) ;
+ 
+   }// end THEN 
+  else{ 
+   // attribute selection_probability assignment 
+    selection_probability_number_attribute[0]*=(( 2 - special_function_29(current_host, 
+s_variable ) )/ (float)( 5 - special_function_30(current_host, s_variable ) )) ;
+ 
+   }// end IF 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Probability of result ";
+     convert << event_name_string[Stack[ res_variable ]->name]; 
+     convert <<" was ";
+     convert << 
+       selection_probability_number_attribute[0] ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_49_50_ob class
+
+//---- 12 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Select_Red); 
+      element[ 1 ]=  new Atomic_producer(Event_Select_Green); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 13 ---- 
+class Ct_51_52 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_51_52 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      element[ 2 ]=  new Alt_1_2 ; 
+    } 
+};// end class Ct_51_52 
+
+//---- 14 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_RRR); 
+      element[ 1 ]=  new Atomic_producer(Event_RRG); 
+      element[ 2 ]=  new Atomic_producer(Event_RGG); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 15 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Ct_51_52 ; 
+      element[ 1 ]=  new Alt_5_6 ; 
+    } 
+};// end class Sq_7_8 
+
+//---- 16 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Selection){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 17 ---- 
+class SCHEMA_RedGreen: public Composite_producer {
+public: // constructor 
+    SCHEMA_RedGreen(): Composite_producer(Event_RedGreen){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[0]= new Composite_secondary_producer(Event_Selection);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new SIMPLE_LIST_49_50_ob(Event_SIMPLE_LIST_49_50);
+    } 
+};// end class SCHEMA_RedGreen
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example24_Bayesian_probability.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_9_10 temp_18; temp_18.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_RedGreen temp_19; temp_19.harvest();
+   temp_19.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"RedGreen"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.mp
new file mode 100644
index 0000000..5022d18
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.mp
@@ -0,0 +1,56 @@
+/* Example24.mp Bayesian attribute example
+
+    Suppose there are 3 red and 2 green balls in a box. 
+    We pick at random three balls, one at a time. 
+    The result of the process can be denoted as RRR, RRG, or RGG, 
+    representing sets of selected balls.
+
+    The following MP schema demonstrates how to obtain all valid traces 
+    and to calculate probabilities for the results.
+    Please notice that the trace Type 1 probability is calculated as 1/7 ~ 0.142857,
+    since Type 1 assumes that probability of selecting an alternative is 
+    constant for the whole derivation process.
+
+    run for scope 1
+*/
+SCHEMA RedGreen
+
+ATTRIBUTES{ number selection_probability; };
+
+ROOT Selection:
+    /* there are precisely three ball selections */
+    (+ <3> ( Select_Red | Select_Green ) +)
+
+    /* possible selection configurations */
+    ( RRR | RRG | RGG )
+;
+
+/* Constraints to shape the valid traces */
+ENSURE  (#RRR == 1 <-> #Select_Red == 3) AND
+        (#RRG == 1 <-> #Select_Red == 2) AND
+        (#RGG == 1 <-> #Select_Red == 1);
+
+/* Attribute calculations are done here */
+COORDINATE  $res: ( RRR | RRG | RGG )
+DO
+    /* prepare for further calculations */
+    selection_probability:= 1; 
+
+    COORDINATE $s: ( Select_Red | Select_Green )
+    DO 
+    /* Probability of the result depends on the ball selection order */
+        IF $s IS  Select_Red THEN 
+            /* probability to select Red ball is:
+                (number of Red balls available / total number of available balls) */
+            selection_probability *:= 
+				(3 - #Select_Red BEFORE $s)/(5 - #( Select_Red | Select_Green ) BEFORE $s);
+        ELSE 
+            /* probability to select Green ball */
+            selection_probability *:= 
+				(2 - #Select_Green BEFORE $s)/(5 - #( Select_Red | Select_Green ) BEFORE $s);
+        FI;
+    OD;
+
+    /* Report the results */
+    SAY( "Probability of result " $res " was " selection_probability);
+OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp.txt
new file mode 100644
index 0000000..fe5a227
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example24_Bayesian_probability tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.tree
new file mode 100644
index 0000000000000000000000000000000000000000..a6375fb96f5e70469e0b24f3e21acbb9515787de
GIT binary patch
literal 10240
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
HYW)8LgyE=q

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.txt
new file mode 100644
index 0000000..31fdea9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example24_Bayesian_probability.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Selection: 	24 traces (0 MARKed) 	120 events 
+		average 5 ev/trace 	min 5 	max 5
+
+completed RedGreen: 	7 traces (0 MARKed) 	49 events 
+		average 7 ev/trace 	min 7 	max 7
+
+Elapsed time 0.000815 sec, Speed: 207362 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.cpp
new file mode 100644
index 0000000..fd35c55
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.cpp
@@ -0,0 +1,530 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA backpack trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  Interval > weight_interval_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( weight_interval_attribute[event1] != weight_interval_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    weight_interval_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!weight_interval_attribute.empty())
+    interval_attr_container.insert(pair<string, map<int, Interval> >("weight",weight_interval_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+    
+    if(p1_interval_attr->first == "weight"){
+      for(p_interval = (p1_interval_attr->second).begin(); 
+          p_interval != (p1_interval_attr->second).end(); p_interval++) 
+         weight_interval_attribute.insert(pair<int, Interval>(p_interval->first + base, p_interval->second));}
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+       // composite events 
+    , Event_item1
+    , Event_item2
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_3_4
+    , Event_SIMPLE_LIST_9_10
+    , Event_SIMPLE_LIST_31_32
+    , Event_SIMPLE_LIST_45_46
+       // ADD operations 
+       // ROOT events 
+    , Event_Backpack
+       // main schema event 
+    , Event_backpack }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "item1"
+     , "item2"
+     , "SIMPLE_LIST_3_4"
+     , "SIMPLE_LIST_9_10"
+     , "SIMPLE_LIST_31_32"
+     , "SIMPLE_LIST_45_46"
+     , "Backpack"
+     , "backpack" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_35(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_item1|| Stack[i]->name == Event_item2){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_38(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_item1|| Stack[i]->name == Event_item2){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 3 ---- 
+class SIMPLE_LIST_3_4_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_3_4_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute weight assignment 
+    weight_interval_attribute[0]=Interval(2 ,5 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_3_4_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_9_10_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_9_10_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute weight assignment 
+    weight_interval_attribute[0]=Interval(10 ,16 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_9_10_ob class
+
+//---- 5 ---- 
+class SIMPLE_LIST_31_32_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_31_32_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int item_variable; // thread variable
+  vector<int> item_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for item_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      item_variable = i; 
+      if( item_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_item1)|| (Stack[i]->name == Event_item2))
+  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = item_variable_list.begin(); s != item_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) item_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source item_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = item_variable_list.size();
+  if(thread_length != item_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    item_variable= item_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"selected ";
+     convert << event_name_string[Stack[ item_variable ]->name]; 
+     convert <<" with weight ";
+     Interval temp_1 = 
+       weight_interval_attribute[item_variable] ; 
+    if( temp_1 .smallest != temp_1 .largest) 
+     convert <<"["<<  temp_1 .smallest << " .. "<< temp_1 .largest << "]"; 
+    else convert << temp_1 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   // attribute weight assignment 
+    weight_interval_attribute[0]+=
+       weight_interval_attribute[item_variable] ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( ( ( 
+       weight_interval_attribute[0] > 0 )&& ( 
+       weight_interval_attribute[0] <= 30 ))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_31_32_ob class
+
+//---- 6 ---- 
+class SIMPLE_LIST_45_46_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_45_46_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"selected ";
+     convert << special_function_38(current_host, Root_table[Event_backpack]); 
+     convert <<" items";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"backpack weight is within interval ";
+     Interval temp_2 = 
+       weight_interval_attribute[Root_table[Event_Backpack]] ; 
+    if( temp_2 .smallest != temp_2 .largest) 
+     convert <<"["<<  temp_2 .smallest << " .. "<< temp_2 .largest << "]"; 
+    else convert << temp_2 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_45_46_ob class
+
+//---- 7 ---- 
+class Alt_13_14 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_13_14 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_item1); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_item2); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_13_14 
+
+//---- 8 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_item1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_3_4_ob(Event_SIMPLE_LIST_3_4); 
+    } 
+};// end class Comp_5_6 
+
+//---- 9 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_item2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_9_10_ob(Event_SIMPLE_LIST_9_10); 
+    } 
+};// end class Comp_11_12 
+
+//---- 10 ---- 
+class Comp_33_34 : public Composite_producer { 
+public: // constructor 
+    Comp_33_34 (): Composite_producer(Event_Backpack){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_13_14 ; 
+      element[ 1 ]=  new SIMPLE_LIST_31_32_ob(Event_SIMPLE_LIST_31_32); 
+    } 
+};// end class Comp_33_34 
+
+//---- 11 ---- 
+class SCHEMA_backpack: public Composite_producer {
+public: // constructor 
+    SCHEMA_backpack(): Composite_producer(Event_backpack){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[0]= new Composite_secondary_producer(Event_Backpack);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new SIMPLE_LIST_45_46_ob(Event_SIMPLE_LIST_45_46);
+    } 
+};// end class SCHEMA_backpack
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example25_interval_attributes.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_5_6 temp_12; temp_12.harvest();
+    Comp_11_12 temp_13; temp_13.harvest();
+   // harvesting traces for ROOT events 
+    Comp_33_34 temp_14; temp_14.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_backpack temp_15; temp_15.harvest();
+   temp_15.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"backpack"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.mp
new file mode 100644
index 0000000..cfef3eb
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.mp
@@ -0,0 +1,28 @@
+/* Example 25, Use of interval attributes.
+    The task is to load a backpack with items not exceeding 
+    the total weight of 30 units. 
+    There may be several instances of the same item.
+
+    run for scopes 1 and up
+==========================================================*/
+SCHEMA backpack
+
+ATTRIBUTES{ interval weight; };
+
+/* Composite event is used to define attribute value for 
+    all instances of a particular event */
+item1:   BUILD{ weight := [2..5];};
+item2:   BUILD{ weight := [10..16];};
+
+ROOT Backpack: (+ (item1 | item2)  +)
+BUILD{ 
+    COORDINATE $item: (item1 | item2) 
+        DO  SAY("selected " $item " with weight " $item.weight);
+            /* interval weight is initialized by [0..0] */
+            weight +:= $item.weight; 
+        OD; 
+    /* ensure that the backpack's weight does not exceed maximum */
+    ENSURE weight > 0 AND weight <= 30; };
+
+SAY("selected " #(item1 | item2) " items");
+SAY("backpack weight is within interval " Backpack.weight);
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp.txt
new file mode 100644
index 0000000..69e5129
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example25_interval_attributes tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.tree
new file mode 100644
index 0000000000000000000000000000000000000000..d630eb407175a251f7074af736673e837e95dfa5
GIT binary patch
literal 7680
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.txt
new file mode 100644
index 0000000..f5a7740
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example25_interval_attributes.txt
@@ -0,0 +1,13 @@
+generating traces for scope 1 
+completed item1: 	1 traces (0 MARKed) 	1 events 
+
+completed item2: 	1 traces (0 MARKed) 	1 events 
+
+completed Backpack: 	2 traces (0 MARKed) 	6 events 
+		average 3 ev/trace 	min 3 	max 3
+
+completed backpack: 	2 traces (0 MARKed) 	12 events 
+		average 6 ev/trace 	min 6 	max 6
+
+Elapsed time 0.000226 sec, Speed: 88495.6 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.cpp
new file mode 100644
index 0000000..8208b45
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.cpp
@@ -0,0 +1,542 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Delays trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  Interval > total_delay_interval_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( total_delay_interval_attribute[event1] != total_delay_interval_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    total_delay_interval_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!total_delay_interval_attribute.empty())
+    interval_attr_container.insert(pair<string, map<int, Interval> >("total_delay",total_delay_interval_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+    
+    if(p1_interval_attr->first == "total_delay"){
+      for(p_interval = (p1_interval_attr->second).begin(); 
+          p_interval != (p1_interval_attr->second).end(); p_interval++) 
+         total_delay_interval_attribute.insert(pair<int, Interval>(p_interval->first + base, p_interval->second));}
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+       // composite events 
+    , Event_Work
+    , Event_Visitor
+    , Event_Get_distracted
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_3_4
+    , Event_SIMPLE_LIST_9_10
+    , Event_SIMPLE_LIST_43_44
+       // ADD operations 
+       // ROOT events 
+    , Event_Worker
+       // main schema event 
+    , Event_Delays }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Work"
+     , "Visitor"
+     , "Get_distracted"
+     , "SIMPLE_LIST_3_4"
+     , "SIMPLE_LIST_9_10"
+     , "SIMPLE_LIST_43_44"
+     , "Worker"
+     , "Delays" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_37(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Visitor){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_40(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Visitor){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 3 ---- 
+class SIMPLE_LIST_3_4_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_3_4_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    SET_duration(0,1 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_3_4_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_9_10_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_9_10_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    SET_duration(0,Interval(2 ,3 )); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_9_10_ob class
+
+//---- 5 ---- 
+class SIMPLE_LIST_43_44_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_43_44_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int distraction_variable; // thread variable
+  vector<int> distraction_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for distraction_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      distraction_variable = i; 
+      if( distraction_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Get_distracted))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = distraction_variable_list.begin(); s != distraction_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) distraction_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source distraction_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = distraction_variable_list.size();
+  if(thread_length != distraction_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    distraction_variable= distraction_variable_list[i];
+   // attribute total_delay assignment 
+    total_delay_interval_attribute[0]+=(recalculate_timing_attributes(), 
+       time_duration_attributes[distraction_variable] ) ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == Atom || Stack[i]->type == ROOT_node || 
+Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"   ";
+     convert << event_name_string[Stack[ x_variable ]->name]; 
+     convert <<" start ";
+     Interval temp_1 = (recalculate_timing_attributes(), 
+       time_start_attributes[x_variable] ) ; 
+    if( temp_1 .smallest != temp_1 .largest) 
+     convert <<"["<<  temp_1 .smallest << " .. "<< temp_1 .largest << "]"; 
+    else convert << temp_1 .smallest; 
+     convert <<" duration ";
+     Interval temp_2 = (recalculate_timing_attributes(), 
+       time_duration_attributes[x_variable] ) ; 
+    if( temp_2 .smallest != temp_2 .largest) 
+     convert <<"["<<  temp_2 .smallest << " .. "<< temp_2 .largest << "]"; 
+    else convert << temp_2 .smallest; 
+     convert <<" end ";
+     Interval temp_3 = (recalculate_timing_attributes(), 
+       time_end_attributes[x_variable] ) ; 
+    if( temp_3 .smallest != temp_3 .largest) 
+     convert <<"["<<  temp_3 .smallest << " .. "<< temp_3 .largest << "]"; 
+    else convert << temp_3 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"  Delay created by ";
+     convert << special_function_40(current_host, Root_table[Event_Delays]); 
+     convert <<" visitors is ";
+     Interval temp_4 = 
+       total_delay_interval_attribute[0] ; 
+    if( temp_4 .smallest != temp_4 .largest) 
+     convert <<"["<<  temp_4 .smallest << " .. "<< temp_4 .largest << "]"; 
+    else convert << temp_4 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_43_44_ob class
+
+//---- 6 ---- 
+class Alt_17_18 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_17_18 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Work); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Get_distracted); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_17_18 
+
+//---- 7 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Work){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_3_4_ob(Event_SIMPLE_LIST_3_4); 
+    } 
+};// end class Comp_5_6 
+
+//---- 8 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Visitor){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_9_10_ob(Event_SIMPLE_LIST_9_10); 
+    } 
+};// end class Comp_11_12 
+
+//---- 9 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_Get_distracted){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Visitor); 
+    } 
+};// end class Comp_15_16 
+
+//---- 10 ---- 
+class Comp_21_22 : public Composite_producer { 
+public: // constructor 
+    Comp_21_22 (): Composite_producer(Event_Worker){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_17_18 ; 
+    } 
+};// end class Comp_21_22 
+
+//---- 11 ---- 
+class SCHEMA_Delays: public Composite_producer {
+public: // constructor 
+    SCHEMA_Delays(): Composite_producer(Event_Delays){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[0]= new Composite_secondary_producer(Event_Worker);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new SIMPLE_LIST_43_44_ob(Event_SIMPLE_LIST_43_44);
+    } 
+};// end class SCHEMA_Delays
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example26_timing_attributes.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_5_6 temp_12; temp_12.harvest();
+    Comp_11_12 temp_13; temp_13.harvest();
+    Comp_15_16 temp_14; temp_14.harvest();
+   // harvesting traces for ROOT events 
+    Comp_21_22 temp_15; temp_15.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Delays temp_16; temp_16.harvest();
+   temp_16.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Delays"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.mp
new file mode 100644
index 0000000..65df381
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.mp
@@ -0,0 +1,42 @@
+/* Example 26, timing attribute use
+
+	also demonstrates how to print all 
+	events present in the trace 
+	with timing attributes
+
+    run for scopes 1 and up
+*/
+SCHEMA Delays
+
+Work:
+BUILD{
+    SET duration AT LEAST 1;
+    /* The new default value for the Work event duration 
+		attribute is set as an interval [1..1] */
+};
+
+
+Visitor:
+	/* set new default duration for Visitor */
+BUILD{ SET duration AT LEAST [2..3]; };
+
+Get_distracted:    (+ Visitor +) ;
+
+ROOT Worker: (+ ( Work | Get_distracted) +);
+
+ATTRIBUTES{ interval total_delay; };
+/* delay is THIS.delay, or attribute of the whole schema event,
+  and  is used to hold specific data extracted from the trace */
+
+COORDINATE $distraction: Get_distracted
+    DO total_delay +:= $distraction.duration; OD;
+
+/* show all events present in the trace with timing attributes, 
+  preserving the order of derivation, top-down, left-to-right */
+COORDINATE $x: $$EVENT 
+	DO SAY("   " $x 	" start " $x.start 
+						" duration " $x.duration 
+						" end " $x.end); 
+	OD;
+
+SAY("  Delay created by " #Visitor " visitors is " total_delay);
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp.txt
new file mode 100644
index 0000000..4819824
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example26_timing_attributes tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.tree
new file mode 100644
index 0000000000000000000000000000000000000000..e482590aa965b97261482b8d14c4fae1fc30bb0b
GIT binary patch
literal 7680
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.txt
new file mode 100644
index 0000000..3489f5d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example26_timing_attributes.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Work: 	1 traces (0 MARKed) 	1 events 
+
+completed Visitor: 	1 traces (0 MARKed) 	1 events 
+
+completed Get_distracted: 	1 traces (0 MARKed) 	2 events 
+
+completed Worker: 	2 traces (0 MARKed) 	5 events 
+		average 2.5 ev/trace 	min 2 	max 3
+
+completed Delays: 	2 traces (0 MARKed) 	14 events 
+		average 7 ev/trace 	min 6 	max 8
+
+Elapsed time 0.000258 sec, Speed: 89147.3 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.cpp
new file mode 100644
index 0000000..85b95d6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.cpp
@@ -0,0 +1,960 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Railroad_Crossing trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Enter_Restricted_Region
+    , Event_Goes_through_Restricted_Region
+    , Event_Enter_Crossing_Region
+    , Event_Leaves_Crossing_Region
+    , Event_Down
+    , Event_Up
+       // composite events 
+    , Event_Goes_through_Crossing_Region
+    , Event_Move_Down
+    , Event_Move_Up
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_15_16
+    , Event_SIMPLE_LIST_21_22
+    , Event_SIMPLE_LIST_27_28
+    , Event_SIMPLE_LIST_97_98
+       // ADD operations 
+       // ROOT events 
+    , Event_Train
+    , Event_Crossing
+       // main schema event 
+    , Event_Railroad_Crossing }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Enter_Restricted_Region"
+     , "Goes_through_Restricted_Region"
+     , "Enter_Crossing_Region"
+     , "Leaves_Crossing_Region"
+     , "Down"
+     , "Up"
+     , "Goes_through_Crossing_Region"
+     , "Move_Down"
+     , "Move_Up"
+     , "SIMPLE_LIST_15_16"
+     , "SIMPLE_LIST_21_22"
+     , "SIMPLE_LIST_27_28"
+     , "SIMPLE_LIST_97_98"
+     , "Train"
+     , "Crossing"
+     , "Railroad_Crossing" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_49_50 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 2 ---- 
+bool Event_comparison_expr_51_52 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 3 ---- 
+bool Quantified_expr_53_54(Coordinate * current_host, int enter_variable){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int up_variable;
+     int pivot_up_variable = Root_table[Event_Crossing];
+
+     // loop 1 for up_variable 
+     for( up_variable = 0; up_variable < len; up_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ up_variable  * len +  pivot_up_variable 
+]) && 
+           (   
+            (Stack[up_variable]-> name == Event_Up)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ! ( Event_comparison_expr_49_50 (current_host, enter_variable , 
+up_variable ) || Event_comparison_expr_51_52 (current_host, up_variable , 
+enter_variable ) )) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 4 ---- 
+bool Quantified_expr_55_56(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int enter_variable;
+     int pivot_enter_variable = Root_table[Event_Train];
+
+     // loop 1 for enter_variable 
+     for( enter_variable = 0; enter_variable < len; enter_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ enter_variable  * len +  
+pivot_enter_variable ]) && 
+           (   
+            (Stack[enter_variable]-> name == Event_Goes_through_Crossing_Region)
+   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ! Quantified_expr_53_54(current_host, enter_variable) ) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 5 ---- 
+class SIMPLE_LIST_15_16_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_15_16_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    SET_duration(0,10 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_15_16_ob class
+
+//---- 6 ---- 
+class SIMPLE_LIST_21_22_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_21_22_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    SET_duration(0,5 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_21_22_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_27_28_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_27_28_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    SET_duration(0,2 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_27_28_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_97_98_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_97_98_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int enter_variable; // thread variable
+  vector<int> enter_variable_list; // list of coordinated events
+  int  Train_source = Root_table[Event_Train]; // source of coordination 
+  int down_variable; // thread variable
+  vector<int> down_variable_list; // list of coordinated events
+  int  Crossing_source = Root_table[Event_Crossing]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for enter_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      enter_variable = i; 
+      if( enter_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Train_source ]){ 
+       if( (  (Stack[i]->name == Event_Enter_Restricted_Region))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = enter_variable_list.begin(); s != enter_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) enter_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source enter_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = enter_variable_list.size();
+  if(thread_length != enter_variable_list.size()) throw failed;
+
+  // preparing thread for down_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      down_variable = i; 
+      if( down_variable_list.size() == thread_length){
+         enter_variable = 0; } 
+      else{ 
+         enter_variable = enter_variable_list[down_variable_list.size()];}; 
+      if(in_matrix[i * len +  Crossing_source ]){ 
+       if( (  (Stack[i]->name == Event_Move_Down))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = down_variable_list.begin(); s != down_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) down_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source down_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = down_variable_list.size();
+  if(thread_length != down_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    enter_variable= enter_variable_list[i];
+    down_variable= down_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(down_variable,enter_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int enter_variable; // thread variable
+  vector<int> enter_variable_list; // list of coordinated events
+  int  Train_source = Root_table[Event_Train]; // source of coordination 
+  int down_variable; // thread variable
+  vector<int> down_variable_list; // list of coordinated events
+  int  Crossing_source = Root_table[Event_Crossing]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for enter_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      enter_variable = i; 
+      if( enter_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Train_source ]){ 
+       if( (  (Stack[i]->name == Event_Enter_Crossing_Region))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = enter_variable_list.begin(); s != enter_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) enter_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source enter_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = enter_variable_list.size();
+  if(thread_length != enter_variable_list.size()) throw failed;
+
+  // preparing thread for down_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      down_variable = i; 
+      if( down_variable_list.size() == thread_length){
+         enter_variable = 0; } 
+      else{ 
+         enter_variable = enter_variable_list[down_variable_list.size()];}; 
+      if(in_matrix[i * len +  Crossing_source ]){ 
+       if( (  (Stack[i]->name == Event_Down))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = down_variable_list.begin(); s != down_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) down_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source down_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = down_variable_list.size();
+  if(thread_length != down_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    enter_variable= enter_variable_list[i];
+    down_variable= down_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(enter_variable,down_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int leaves_variable; // thread variable
+  vector<int> leaves_variable_list; // list of coordinated events
+  int  Train_source = Root_table[Event_Train]; // source of coordination 
+  int up_variable; // thread variable
+  vector<int> up_variable_list; // list of coordinated events
+  int  Crossing_source = Root_table[Event_Crossing]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for leaves_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      leaves_variable = i; 
+      if( leaves_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Train_source ]){ 
+       if( (  (Stack[i]->name == Event_Leaves_Crossing_Region))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = leaves_variable_list.begin(); s != leaves_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) leaves_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source leaves_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = leaves_variable_list.size();
+  if(thread_length != leaves_variable_list.size()) throw failed;
+
+  // preparing thread for up_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      up_variable = i; 
+      if( up_variable_list.size() == thread_length){
+         leaves_variable = 0; } 
+      else{ 
+         leaves_variable = leaves_variable_list[up_variable_list.size()];}; 
+      if(in_matrix[i * len +  Crossing_source ]){ 
+       if( (  (Stack[i]->name == Event_Move_Up))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = up_variable_list.begin(); s != up_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) up_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source up_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = up_variable_list.size();
+  if(thread_length != up_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    leaves_variable= leaves_variable_list[i];
+    up_variable= up_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(up_variable,leaves_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( Quantified_expr_55_56(current_host) ){} 
+  else{ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Crossing is open when train is passing through!";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   Mark = 'M'; // MARK
+   }// end IF 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int goes_through_variable; // thread variable
+  vector<int> goes_through_variable_list; // list of coordinated events
+  int  Train_source = Root_table[Event_Train]; // source of coordination 
+  int down_variable; // thread variable
+  vector<int> down_variable_list; // list of coordinated events
+  int  Crossing_source = Root_table[Event_Crossing]; // source of coordination 
+  int bar_is_up_variable; // thread variable
+  vector<int> bar_is_up_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for goes_through_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      goes_through_variable = i; 
+      if( goes_through_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Train_source ]){ 
+       if( (  (Stack[i]->name == Event_Goes_through_Crossing_Region))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = goes_through_variable_list.begin(); s != goes_through_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) goes_through_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source goes_through_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = goes_through_variable_list.size();
+  if(thread_length != goes_through_variable_list.size()) throw failed;
+
+  // preparing thread for down_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      down_variable = i; 
+      if( down_variable_list.size() == thread_length){
+         goes_through_variable = 0; } 
+      else{ 
+         goes_through_variable = goes_through_variable_list[down_variable_list.size()];
+}; 
+      if(in_matrix[i * len +  Crossing_source ]){ 
+       if( (  (Stack[i]->name == Event_Down))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = down_variable_list.begin(); s != down_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) down_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source down_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = down_variable_list.size();
+  if(thread_length != down_variable_list.size()) throw failed;
+
+  // preparing thread for bar_is_up_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      bar_is_up_variable = i; 
+      if( bar_is_up_variable_list.size() == thread_length){
+         goes_through_variable = 0; 
+         down_variable = 0; } 
+      else{ 
+         goes_through_variable = goes_through_variable_list[bar_is_up_variable_list.size()];
+         down_variable = down_variable_list[bar_is_up_variable_list.size()];}; 
+      if(in_matrix[i * len +  Crossing_source ]){ 
+       if( (  (Stack[i]->name == Event_Move_Up))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = bar_is_up_variable_list.begin(); s != bar_is_up_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) bar_is_up_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source bar_is_up_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = bar_is_up_variable_list.size();
+  if(thread_length != bar_is_up_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    goes_through_variable= goes_through_variable_list[i];
+    down_variable= down_variable_list[i];
+    bar_is_up_variable= bar_is_up_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Bar moved down by ";
+     Interval temp_1 = (recalculate_timing_attributes(), 
+       time_end_attributes[down_variable] ) ; 
+    if( temp_1 .smallest != temp_1 .largest) 
+     convert <<"["<<  temp_1 .smallest << " .. "<< temp_1 .largest << "]"; 
+    else convert << temp_1 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Train starts go through crossing at ";
+     Interval temp_2 = (recalculate_timing_attributes(), 
+       time_start_attributes[goes_through_variable] ) ; 
+    if( temp_2 .smallest != temp_2 .largest) 
+     convert <<"["<<  temp_2 .smallest << " .. "<< temp_2 .largest << "]"; 
+    else convert << temp_2 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Train ends go through crossing at ";
+     Interval temp_3 = (recalculate_timing_attributes(), 
+       time_end_attributes[goes_through_variable] ) ; 
+    if( temp_3 .smallest != temp_3 .largest) 
+     convert <<"["<<  temp_3 .smallest << " .. "<< temp_3 .largest << "]"; 
+    else convert << temp_3 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Bar starts go up at ";
+     Interval temp_4 = (recalculate_timing_attributes(), 
+       time_start_attributes[bar_is_up_variable] ) ; 
+    if( temp_4 .smallest != temp_4 .largest) 
+     convert <<"["<<  temp_4 .smallest << " .. "<< temp_4 .largest << "]"; 
+    else convert << temp_4 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   if( ( (recalculate_timing_attributes(), 
+       time_start_attributes[goes_through_variable] ) < 
+(recalculate_timing_attributes(), 
+       time_end_attributes[down_variable] ) )){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Not enough time to close crossing";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+  else{ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Crossing was successfully closed";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end IF 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_97_98_ob class
+
+//---- 9 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Enter_Restricted_Region); 
+      element[ 1 ]=  new Atomic_producer(Event_Goes_through_Restricted_Region); 
+      element[ 2 ]=  new Atomic_producer(Event_Enter_Crossing_Region); 
+      element[ 3 ]=  new Composite_secondary_producer(Event_Goes_through_Crossing_Region)
+; 
+      element[ 4 ]=  new Atomic_producer(Event_Leaves_Crossing_Region); 
+    } 
+};// end class Sq_1_2 
+
+//---- 10 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Move_Down); 
+      element[ 1 ]=  new Atomic_producer(Event_Down); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Move_Up); 
+      element[ 3 ]=  new Atomic_producer(Event_Up); 
+    } 
+};// end class Sq_7_8 
+
+//---- 11 ---- 
+class Comp_17_18 : public Composite_producer { 
+public: // constructor 
+    Comp_17_18 (): Composite_producer(Event_Goes_through_Crossing_Region){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_15_16_ob(Event_SIMPLE_LIST_15_16); 
+    } 
+};// end class Comp_17_18 
+
+//---- 12 ---- 
+class Comp_23_24 : public Composite_producer { 
+public: // constructor 
+    Comp_23_24 (): Composite_producer(Event_Move_Down){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_21_22_ob(Event_SIMPLE_LIST_21_22); 
+    } 
+};// end class Comp_23_24 
+
+//---- 13 ---- 
+class Comp_29_30 : public Composite_producer { 
+public: // constructor 
+    Comp_29_30 (): Composite_producer(Event_Move_Up){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new SIMPLE_LIST_27_28_ob(Event_SIMPLE_LIST_27_28); 
+    } 
+};// end class Comp_29_30 
+
+//---- 14 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Train){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 15 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Crossing){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 16 ---- 
+class SCHEMA_Railroad_Crossing: public Composite_producer {
+public: // constructor 
+    SCHEMA_Railroad_Crossing(): Composite_producer(Event_Railroad_Crossing){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Train);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Crossing);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_97_98_ob(Event_SIMPLE_LIST_97_98);
+    } 
+};// end class SCHEMA_Railroad_Crossing
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example27_Railroad_Crossing.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_17_18 temp_17; temp_17.harvest();
+    Comp_23_24 temp_18; temp_18.harvest();
+    Comp_29_30 temp_19; temp_19.harvest();
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_20; temp_20.harvest();
+    Comp_11_12 temp_21; temp_21.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Railroad_Crossing temp_22; temp_22.harvest();
+   temp_22.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Railroad_Crossing"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.mp
new file mode 100644
index 0000000..c6c9332
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.mp
@@ -0,0 +1,71 @@
+/*
+Example 27.	Timing attribute use.
+
+Railroad crossing example from [Formal Methods for Real-Time Computing, 1996].
+The system operates a gate at a railroad crossing. A sensor determines when 
+each train enters and exits the crossing’s region. 
+
+The main safety requirement is: if a train is in the crossing region, 
+then gate must be down.
+
+*/
+
+SCHEMA Railroad_Crossing
+
+ROOT Train: 
+	(+
+		Enter_Restricted_Region
+		Goes_through_Restricted_Region
+		Enter_Crossing_Region
+		Goes_through_Crossing_Region
+		Leaves_Crossing_Region
+	+) ;
+
+ROOT Crossing:
+	(+
+		Move_Down
+		Down
+		Move_Up
+		Up
+	+) ;
+
+/* Set values for duration attributes */
+/*================================================*/
+Goes_through_Crossing_Region: BUILD{ SET duration AT LEAST 10; };
+
+Move_Down: BUILD{ SET duration AT LEAST 5; };
+
+Move_Up: BUILD{ SET duration AT LEAST 2; }; 
+
+COORDINATE 	$enter: Enter_Restricted_Region 	FROM Train,
+			$down: 	Move_Down 					FROM Crossing
+	DO ADD $enter PRECEDES $down; OD;
+
+COORDINATE 	$enter: Enter_Crossing_Region 		FROM Train,
+			$down:  Down 						FROM Crossing
+	DO ADD $down PRECEDES $enter; OD;
+
+COORDINATE 	$leaves: 	Leaves_Crossing_Region 	FROM Train,
+			$up: 	 	Move_Up 				FROM Crossing
+	DO ADD $leaves PRECEDES $up; OD;
+
+/* The main safety condition */
+CHECK FOREACH $enter: Goes_through_Crossing_Region FROM Train 
+				NOT EXISTS $up: Up FROM Crossing
+									MAY_OVERLAP $enter $up
+	ONFAIL SAY("Crossing is open when train is passing through!");
+
+COORDINATE 
+    $goes_through: Goes_through_Crossing_Region FROM Train,
+    $down: Down                                 FROM Crossing,
+    $bar_is_up: Move_Up                         FROM Crossing
+DO 
+    SAY("Bar moved down by " $down.end );
+    SAY("Train starts go through crossing at " $goes_through.start);
+    SAY("Train ends go through crossing at " $goes_through.end);
+    SAY("Bar starts go up at " $bar_is_up.start);
+    IF $goes_through.start < $down.end THEN
+                SAY("Not enough time to close crossing");
+    ELSE        SAY("Crossing was successfully closed"); 
+    FI;
+OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp.txt
new file mode 100644
index 0000000..c00db62
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example27_Railroad_Crossing tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.tree
new file mode 100644
index 0000000000000000000000000000000000000000..021e238362b98b8e7b6e02296ef38833b4d3594c
GIT binary patch
literal 13312
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
PrdBMT7Qp=fx%vNJc!Z6G

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.txt
new file mode 100644
index 0000000..abddef2
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example27_Railroad_Crossing.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Goes_through_Crossing_Region: 	1 traces (0 MARKed) 	1 events 
+
+completed Move_Down: 	1 traces (0 MARKed) 	1 events 
+
+completed Move_Up: 	1 traces (0 MARKed) 	1 events 
+
+completed Train: 	1 traces (0 MARKed) 	6 events 
+
+completed Crossing: 	1 traces (0 MARKed) 	5 events 
+
+completed Railroad_Crossing: 	1 traces (0 MARKed) 	17 events 
+
+Elapsed time 0.000585 sec, Speed: 52991.5 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture
new file mode 100644
index 0000000000000000000000000000000000000000..a5f5958fc7eeb22fffa662ebd346a65dd6f2c632
GIT binary patch
literal 222672
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.cpp
new file mode 100644
index 0000000..b8479e7
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.cpp
@@ -0,0 +1,1681 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA MP_architecture trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_101_Diagram;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_load_MP_file
+    , Event_MP_model_editing
+    , Event_browsing_MP_code
+    , Event_press_RUN_button
+    , Event_browse_event_trace
+    , Event_syntax_errors_detected
+    , Event_save_MP_file
+    , Event_end_of_session
+    , Event_input_MP_code
+    , Event_receive_json_file
+    , Event_visualize_trace
+    , Event_perform_syntax_analysis
+    , Event_write_abstract_syntax_tree
+    , Event_read_abstract_syntax_tree
+    , Event_generate_Cpp_file
+    , Event_run_Cpp_compiler
+    , Event_run_executable
+    , Event_produce_json_file
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_25_26
+    , Event_SIMPLE_LIST_49_50
+    , Event_SIMPLE_LIST_69_70
+    , Event_SIMPLE_LIST_79_80
+    , Event_SIMPLE_LIST_143_144
+       // ADD operations 
+       // ROOT events 
+    , Event_User
+    , Event_MP_code_editor
+    , Event_MP_GUI
+    , Event_MP_parser
+    , Event_Abstract_syntax_tree
+    , Event_Trace_generator
+       // main schema event 
+    , Event_MP_architecture }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "load_MP_file"
+     , "MP_model_editing"
+     , "browsing_MP_code"
+     , "press_RUN_button"
+     , "browse_event_trace"
+     , "syntax_errors_detected"
+     , "save_MP_file"
+     , "end_of_session"
+     , "input_MP_code"
+     , "receive_json_file"
+     , "visualize_trace"
+     , "perform_syntax_analysis"
+     , "write_abstract_syntax_tree"
+     , "read_abstract_syntax_tree"
+     , "generate_Cpp_file"
+     , "run_Cpp_compiler"
+     , "run_executable"
+     , "produce_json_file"
+     , "SIMPLE_LIST_25_26"
+     , "SIMPLE_LIST_49_50"
+     , "SIMPLE_LIST_69_70"
+     , "SIMPLE_LIST_79_80"
+     , "SIMPLE_LIST_143_144"
+     , "User"
+     , "MP_code_editor"
+     , "MP_GUI"
+     , "MP_parser"
+     , "Abstract_syntax_tree"
+     , "Trace_generator"
+     , "MP_architecture" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Quantified_expr_121_122(Coordinate * current_host, int E1_variable, int E2_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int E3_variable;
+     int pivot_E3_variable = 0; 
+
+     // loop 1 for E3_variable 
+     for( E3_variable = 0; E3_variable < len; E3_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ E3_variable  * len +  pivot_E3_variable 
+]) && 
+           (   Stack[ E3_variable ]->type == Atom || Stack[ E3_variable 
+]->type == ROOT_node || Stack[ E3_variable 
+]->type == Composite_event_instance_node || Stack[ E3_variable 
+]->type == Schema_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( find_pair_in_table( E3_variable , E1_variable ,	Inside) && 
+find_pair_in_table( E3_variable , E2_variable ,	Inside) )) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 2 ---- 
+bool Quantified_expr_125_126(Coordinate * current_host, int E1_variable, int E2_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int E3_variable;
+     int pivot_E3_variable = E1_variable ; 
+     int E4_variable;
+     int pivot_E4_variable = E2_variable ; 
+
+     // loop 1 for E3_variable 
+     for( E3_variable = 0; E3_variable < len; E3_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ E3_variable  * len +  pivot_E3_variable 
+]) && 
+           (   Stack[ E3_variable ]->type == Atom || Stack[ E3_variable 
+]->type == ROOT_node || Stack[ E3_variable 
+]->type == Composite_event_instance_node || Stack[ E3_variable 
+]->type == Schema_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for E4_variable 
+     for( E4_variable = 0; E4_variable < len; E4_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ E4_variable  * len +  pivot_E4_variable 
+]) && 
+           (   Stack[ E4_variable ]->type == Atom || Stack[ E4_variable 
+]->type == ROOT_node || Stack[ E4_variable 
+]->type == Composite_event_instance_node || Stack[ E4_variable 
+]->type == Schema_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( find_pair_in_table( E4_variable , E3_variable ,	Follows) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 3 ---- 
+class SIMPLE_LIST_25_26_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_25_26_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int User_source = Root_table[Event_User];
+   // lists of shared events for  User 
+  vector<int> User_MP_model_editing_list;
+  vector<int> User_browsing_MP_code_list;
+
+  int MP_code_editor_source = Root_table[Event_MP_code_editor];
+   // lists of shared events for  MP_code_editor 
+  vector<int> MP_code_editor_MP_model_editing_list;
+  vector<int> MP_code_editor_browsing_MP_code_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + User_source ]){ 
+     if( Stack[i]->name == Event_MP_model_editing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_MP_model_editing_list.begin();
+          s != User_MP_model_editing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_MP_model_editing_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_browsing_MP_code ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_browsing_MP_code_list.begin();
+          s != User_browsing_MP_code_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_browsing_MP_code_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + MP_code_editor_source ]){ 
+     if( Stack[i]->name == Event_MP_model_editing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_code_editor_MP_model_editing_list.begin();
+          s != MP_code_editor_MP_model_editing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_code_editor_MP_model_editing_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_browsing_MP_code ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_code_editor_browsing_MP_code_list.begin();
+          s != MP_code_editor_browsing_MP_code_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_code_editor_browsing_MP_code_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = MP_code_editor_MP_model_editing_list.size();
+     if(User_MP_model_editing_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = MP_code_editor_browsing_MP_code_list.size();
+     if(User_browsing_MP_code_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = MP_code_editor_MP_model_editing_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_MP_model_editing_list[i], MP_code_editor_MP_model_editing_list[i]);
+   } 
+   len_to_compare = MP_code_editor_browsing_MP_code_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_browsing_MP_code_list[i], MP_code_editor_browsing_MP_code_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_25_26_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_49_50_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_49_50_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int User_source = Root_table[Event_User];
+   // lists of shared events for  User 
+  vector<int> User_load_MP_file_list;
+  vector<int> User_save_MP_file_list;
+  vector<int> User_press_RUN_button_list;
+
+  int MP_GUI_source = Root_table[Event_MP_GUI];
+   // lists of shared events for  MP_GUI 
+  vector<int> MP_GUI_load_MP_file_list;
+  vector<int> MP_GUI_save_MP_file_list;
+  vector<int> MP_GUI_press_RUN_button_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + User_source ]){ 
+     if( Stack[i]->name == Event_load_MP_file ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_load_MP_file_list.begin();
+          s != User_load_MP_file_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_load_MP_file_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_save_MP_file ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_save_MP_file_list.begin();
+          s != User_save_MP_file_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_save_MP_file_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_press_RUN_button ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_press_RUN_button_list.begin();
+          s != User_press_RUN_button_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_press_RUN_button_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + MP_GUI_source ]){ 
+     if( Stack[i]->name == Event_load_MP_file ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_GUI_load_MP_file_list.begin();
+          s != MP_GUI_load_MP_file_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_GUI_load_MP_file_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_save_MP_file ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_GUI_save_MP_file_list.begin();
+          s != MP_GUI_save_MP_file_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_GUI_save_MP_file_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_press_RUN_button ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_GUI_press_RUN_button_list.begin();
+          s != MP_GUI_press_RUN_button_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_GUI_press_RUN_button_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = MP_GUI_load_MP_file_list.size();
+     if(User_load_MP_file_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = MP_GUI_save_MP_file_list.size();
+     if(User_save_MP_file_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = MP_GUI_press_RUN_button_list.size();
+     if(User_press_RUN_button_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = MP_GUI_load_MP_file_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_load_MP_file_list[i], MP_GUI_load_MP_file_list[i]);
+   } 
+   len_to_compare = MP_GUI_save_MP_file_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_save_MP_file_list[i], MP_GUI_save_MP_file_list[i]);
+   } 
+   len_to_compare = MP_GUI_press_RUN_button_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_press_RUN_button_list[i], MP_GUI_press_RUN_button_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int v_variable; // thread variable
+  vector<int> v_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for v_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      v_variable = i; 
+      if( v_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_visualize_trace))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = v_variable_list.begin(); s != v_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) v_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source v_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = v_variable_list.size();
+  if(thread_length != v_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         v_variable = 0; } 
+      else{ 
+         v_variable = v_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_browse_event_trace))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    v_variable= v_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,v_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_49_50_ob class
+
+//---- 5 ---- 
+class SIMPLE_LIST_69_70_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_69_70_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int MP_parser_source = Root_table[Event_MP_parser];
+   // lists of shared events for  MP_parser 
+  vector<int> MP_parser_input_MP_code_list;
+
+  int MP_GUI_source = Root_table[Event_MP_GUI];
+   // lists of shared events for  MP_GUI 
+  vector<int> MP_GUI_input_MP_code_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + MP_parser_source ]){ 
+     if( Stack[i]->name == Event_input_MP_code ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_parser_input_MP_code_list.begin();
+          s != MP_parser_input_MP_code_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_parser_input_MP_code_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + MP_GUI_source ]){ 
+     if( Stack[i]->name == Event_input_MP_code ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_GUI_input_MP_code_list.begin();
+          s != MP_GUI_input_MP_code_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_GUI_input_MP_code_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = MP_GUI_input_MP_code_list.size();
+     if(MP_parser_input_MP_code_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = MP_GUI_input_MP_code_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(MP_parser_input_MP_code_list[i], MP_GUI_input_MP_code_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int User_source = Root_table[Event_User];
+   // lists of shared events for  User 
+  vector<int> User_syntax_errors_detected_list;
+
+  int MP_parser_source = Root_table[Event_MP_parser];
+   // lists of shared events for  MP_parser 
+  vector<int> MP_parser_syntax_errors_detected_list;
+
+  int MP_GUI_source = Root_table[Event_MP_GUI];
+   // lists of shared events for  MP_GUI 
+  vector<int> MP_GUI_syntax_errors_detected_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + User_source ]){ 
+     if( Stack[i]->name == Event_syntax_errors_detected ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  User_syntax_errors_detected_list.begin();
+          s != User_syntax_errors_detected_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) User_syntax_errors_detected_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + MP_parser_source ]){ 
+     if( Stack[i]->name == Event_syntax_errors_detected ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_parser_syntax_errors_detected_list.begin();
+          s != MP_parser_syntax_errors_detected_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_parser_syntax_errors_detected_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + MP_GUI_source ]){ 
+     if( Stack[i]->name == Event_syntax_errors_detected ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_GUI_syntax_errors_detected_list.begin();
+          s != MP_GUI_syntax_errors_detected_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_GUI_syntax_errors_detected_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = MP_GUI_syntax_errors_detected_list.size();
+     if(User_syntax_errors_detected_list.size() != len_to_compare) throw failed 
+; 
+     if(MP_parser_syntax_errors_detected_list.size() != len_to_compare) throw 
+failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = MP_GUI_syntax_errors_detected_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(User_syntax_errors_detected_list[i], MP_parser_syntax_errors_detected_list[i]);
+     make_equality_complete(User_syntax_errors_detected_list[i], MP_GUI_syntax_errors_detected_list[i]);
+     make_equality_complete(MP_parser_syntax_errors_detected_list[i], MP_GUI_syntax_errors_detected_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int p_variable; // thread variable
+  vector<int> p_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for p_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p_variable = i; 
+      if( p_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_press_RUN_button))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p_variable_list.begin(); s != p_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source p_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p_variable_list.size();
+  if(thread_length != p_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         p_variable = 0; } 
+      else{ 
+         p_variable = p_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_input_MP_code))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    p_variable= p_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,p_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_69_70_ob class
+
+//---- 6 ---- 
+class SIMPLE_LIST_79_80_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_79_80_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int MP_parser_source = Root_table[Event_MP_parser];
+   // lists of shared events for  MP_parser 
+  vector<int> MP_parser_write_abstract_syntax_tree_list;
+
+  int Abstract_syntax_tree_source = Root_table[Event_Abstract_syntax_tree];
+   // lists of shared events for  Abstract_syntax_tree 
+  vector<int> Abstract_syntax_tree_write_abstract_syntax_tree_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + MP_parser_source ]){ 
+     if( Stack[i]->name == Event_write_abstract_syntax_tree ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  MP_parser_write_abstract_syntax_tree_list.begin();
+          s != MP_parser_write_abstract_syntax_tree_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) MP_parser_write_abstract_syntax_tree_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Abstract_syntax_tree_source ]){ 
+     if( Stack[i]->name == Event_write_abstract_syntax_tree ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Abstract_syntax_tree_write_abstract_syntax_tree_list.begin();
+          s != Abstract_syntax_tree_write_abstract_syntax_tree_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Abstract_syntax_tree_write_abstract_syntax_tree_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Abstract_syntax_tree_write_abstract_syntax_tree_list.size();
+     if(MP_parser_write_abstract_syntax_tree_list.size() != len_to_compare) 
+throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Abstract_syntax_tree_write_abstract_syntax_tree_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(MP_parser_write_abstract_syntax_tree_list[i], Abstract_syntax_tree_write_abstract_syntax_tree_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_79_80_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_143_144_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_143_144_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Abstract_syntax_tree_source = Root_table[Event_Abstract_syntax_tree];
+   // lists of shared events for  Abstract_syntax_tree 
+  vector<int> Abstract_syntax_tree_read_abstract_syntax_tree_list;
+
+  int Trace_generator_source = Root_table[Event_Trace_generator];
+   // lists of shared events for  Trace_generator 
+  vector<int> Trace_generator_read_abstract_syntax_tree_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Abstract_syntax_tree_source ]){ 
+     if( Stack[i]->name == Event_read_abstract_syntax_tree ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Abstract_syntax_tree_read_abstract_syntax_tree_list.begin();
+          s != Abstract_syntax_tree_read_abstract_syntax_tree_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Abstract_syntax_tree_read_abstract_syntax_tree_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Trace_generator_source ]){ 
+     if( Stack[i]->name == Event_read_abstract_syntax_tree ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Trace_generator_read_abstract_syntax_tree_list.begin();
+          s != Trace_generator_read_abstract_syntax_tree_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Trace_generator_read_abstract_syntax_tree_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Trace_generator_read_abstract_syntax_tree_list.size();
+     if(Abstract_syntax_tree_read_abstract_syntax_tree_list.size() != len_to_compare) 
+throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Trace_generator_read_abstract_syntax_tree_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Abstract_syntax_tree_read_abstract_syntax_tree_list[i], Trace_generator_read_abstract_syntax_tree_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int p_variable; // thread variable
+  vector<int> p_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for p_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p_variable = i; 
+      if( p_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_produce_json_file))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p_variable_list.begin(); s != p_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source p_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p_variable_list.size();
+  if(thread_length != p_variable_list.size()) throw failed;
+
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){
+         p_variable = 0; } 
+      else{ 
+         p_variable = p_variable_list[r_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_receive_json_file))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    p_variable= p_variable_list[i];
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r_variable,p_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<" Scope ";
+     convert << 3 ; 
+     convert <<" Trace #";
+     convert << 
+       trace_id_attribute ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    { // Diagram title generation 
+     ostringstream convert; 
+     convert <<"main component interactions";
+     GRAPH_101_Diagram.title = convert.str();}
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int E1_variable; // thread variable
+  vector<int> E1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for E1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      E1_variable = i; 
+      if( E1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == ROOT_node) ||
+(Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = E1_variable_list.begin(); s != E1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) E1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source E1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = E1_variable_list.size();
+  if(thread_length != E1_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    E1_variable= E1_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int E2_variable; // thread variable
+  vector<int> E2_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for E2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      E2_variable = i; 
+      if( E2_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == ROOT_node) ||
+(Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = E2_variable_list.begin(); s != E2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) E2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source E2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = E2_variable_list.size();
+  if(thread_length != E2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    E2_variable= E2_variable_list[i];
+   // WITHIN Diagram 
+   int a_102_node_var = -1; 
+   int b_104_node_var = -1; 
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ E1_variable ]->name]; 
+    a_102_node_var = GRAPH_101_Diagram.find_or_create_new_node(convert.str());}
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ E2_variable ]->name]; 
+    b_104_node_var = GRAPH_101_Diagram.find_or_create_new_node(convert.str());}
+   if( find_pair_in_table( E1_variable , E2_variable ,	Inside) ){ 
+  // add_arrow for GRAPH_101_Diagram 
+  { 
+     ostringstream convert; 
+     convert <<"calls";
+     GRAPH_101_Diagram.add_arrow(b_104_node_var,a_102_node_var,convert.str());}
+   }// end THEN 
+   if( ( ( ( E1_variable != E2_variable ) && ! ( find_pair_in_table( E1_variable
+ , E2_variable ,	Inside) || find_pair_in_table( E2_variable , E1_variable 
+,	Inside) ))&& ( Quantified_expr_121_122(current_host, E1_variable, E2_variable)
+ || Quantified_expr_125_126(current_host, E1_variable, E2_variable) ))){ 
+  // add_line for GRAPH_101_Diagram 
+  { 
+     ostringstream convert; 
+     convert <<"interacts with";
+     GRAPH_101_Diagram.add_line(a_102_node_var,b_104_node_var,convert.str());}
+   }// end THEN 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_143_144_ob class
+
+//---- 8 ---- 
+class Opt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_load_MP_file); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_1_2 
+
+//---- 9 ---- 
+class Alt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_MP_model_editing); 
+      element[ 1 ]=  new Atomic_producer(Event_browsing_MP_code); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_3_4 
+
+//---- 10 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_browse_event_trace); 
+      element[ 1 ]=  new Atomic_producer(Event_syntax_errors_detected); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 11 ---- 
+class Opt_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_save_MP_file); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_7_8 
+
+//---- 12 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Opt_1_2 ; 
+      element[ 1 ]=  new Alt_3_4 ; 
+      element[ 2 ]=  new Atomic_producer(Event_press_RUN_button); 
+      element[ 3 ]=  new Alt_5_6 ; 
+      element[ 4 ]=  new Opt_7_8 ; 
+    } 
+};// end class Sq_9_10 
+
+//---- 13 ---- 
+class Ct_147_148 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_147_148 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+      element[ 1 ]=  new Sq_9_10 ; 
+    } 
+};// end class Ct_147_148 
+
+//---- 14 ---- 
+class Ct_149_150 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_149_150 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+      element[ 1 ]=  new Sq_9_10 ; 
+      element[ 2 ]=  new Sq_9_10 ; 
+    } 
+};// end class Ct_149_150 
+
+//---- 15 ---- 
+class Itp_11_12 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_11_12 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+      element[ 1 ]=  new Ct_147_148 ; 
+      element[ 2 ]=  new Ct_149_150 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_11_12 
+
+//---- 16 ---- 
+class Sq_13_14 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_13_14 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itp_11_12 ; 
+      element[ 1 ]=  new Atomic_producer(Event_end_of_session); 
+    } 
+};// end class Sq_13_14 
+
+//---- 17 ---- 
+class Alt_17_18 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_17_18 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_MP_model_editing); 
+      element[ 1 ]=  new Atomic_producer(Event_browsing_MP_code); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_17_18 
+
+//---- 18 ---- 
+class Ct_151_152 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_151_152 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_17_18 ; 
+      element[ 1 ]=  new Alt_17_18 ; 
+    } 
+};// end class Ct_151_152 
+
+//---- 19 ---- 
+class Ct_153_154 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_153_154 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_17_18 ; 
+      element[ 1 ]=  new Alt_17_18 ; 
+      element[ 2 ]=  new Alt_17_18 ; 
+    } 
+};// end class Ct_153_154 
+
+//---- 20 ---- 
+class Itp_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_17_18 ; 
+      element[ 1 ]=  new Ct_151_152 ; 
+      element[ 2 ]=  new Ct_153_154 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_19_20 
+
+//---- 21 ---- 
+class Opt_27_28 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_27_28 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_load_MP_file); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_27_28 
+
+//---- 22 ---- 
+class Sq_29_30 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_29_30 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive_json_file); 
+      element[ 1 ]=  new Atomic_producer(Event_visualize_trace); 
+    } 
+};// end class Sq_29_30 
+
+//---- 23 ---- 
+class Alt_31_32 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_31_32 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_29_30 ; 
+      element[ 1 ]=  new Atomic_producer(Event_syntax_errors_detected); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_31_32 
+
+//---- 24 ---- 
+class Opt_33_34 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_33_34 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_save_MP_file); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_33_34 
+
+//---- 25 ---- 
+class Sq_35_36 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_35_36 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Opt_27_28 ; 
+      element[ 1 ]=  new Atomic_producer(Event_press_RUN_button); 
+      element[ 2 ]=  new Atomic_producer(Event_input_MP_code); 
+      element[ 3 ]=  new Alt_31_32 ; 
+      element[ 4 ]=  new Opt_33_34 ; 
+    } 
+};// end class Sq_35_36 
+
+//---- 26 ---- 
+class Ct_155_156 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_155_156 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_155_156 
+
+//---- 27 ---- 
+class Ct_157_158 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_157_158 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      element[ 2 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_157_158 
+
+//---- 28 ---- 
+class Itp_37_38 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_37_38 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Ct_155_156 ; 
+      element[ 2 ]=  new Ct_157_158 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_37_38 
+
+//---- 29 ---- 
+class Alt_51_52 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_51_52 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_write_abstract_syntax_tree); 
+      element[ 1 ]=  new Atomic_producer(Event_syntax_errors_detected); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_51_52 
+
+//---- 30 ---- 
+class Sq_53_54 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_53_54 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_input_MP_code); 
+      element[ 1 ]=  new Atomic_producer(Event_perform_syntax_analysis); 
+      element[ 2 ]=  new Alt_51_52 ; 
+    } 
+};// end class Sq_53_54 
+
+//---- 31 ---- 
+class Ct_159_160 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_159_160 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_53_54 ; 
+      element[ 1 ]=  new Sq_53_54 ; 
+    } 
+};// end class Ct_159_160 
+
+//---- 32 ---- 
+class Ct_161_162 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_161_162 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_53_54 ; 
+      element[ 1 ]=  new Sq_53_54 ; 
+      element[ 2 ]=  new Sq_53_54 ; 
+    } 
+};// end class Ct_161_162 
+
+//---- 33 ---- 
+class Itp_55_56 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_55_56 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_53_54 ; 
+      element[ 1 ]=  new Ct_159_160 ; 
+      element[ 2 ]=  new Ct_161_162 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_55_56 
+
+//---- 34 ---- 
+class Sq_71_72 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_71_72 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_write_abstract_syntax_tree); 
+      element[ 1 ]=  new Atomic_producer(Event_read_abstract_syntax_tree); 
+    } 
+};// end class Sq_71_72 
+
+//---- 35 ---- 
+class Ct_163_164 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_163_164 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_71_72 ; 
+      element[ 1 ]=  new Sq_71_72 ; 
+    } 
+};// end class Ct_163_164 
+
+//---- 36 ---- 
+class Ct_165_166 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_165_166 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_71_72 ; 
+      element[ 1 ]=  new Sq_71_72 ; 
+      element[ 2 ]=  new Sq_71_72 ; 
+    } 
+};// end class Ct_165_166 
+
+//---- 37 ---- 
+class Itr_73_74 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_73_74 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_71_72 ; 
+      element[ 2 ]=  new Ct_163_164 ; 
+      element[ 3 ]=  new Ct_165_166 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_73_74 
+
+//---- 38 ---- 
+class Sq_81_82 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_81_82 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_read_abstract_syntax_tree); 
+      element[ 1 ]=  new Atomic_producer(Event_generate_Cpp_file); 
+      element[ 2 ]=  new Atomic_producer(Event_run_Cpp_compiler); 
+      element[ 3 ]=  new Atomic_producer(Event_run_executable); 
+      element[ 4 ]=  new Atomic_producer(Event_produce_json_file); 
+    } 
+};// end class Sq_81_82 
+
+//---- 39 ---- 
+class Ct_167_168 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_167_168 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_81_82 ; 
+      element[ 1 ]=  new Sq_81_82 ; 
+    } 
+};// end class Ct_167_168 
+
+//---- 40 ---- 
+class Ct_169_170 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_169_170 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_81_82 ; 
+      element[ 1 ]=  new Sq_81_82 ; 
+      element[ 2 ]=  new Sq_81_82 ; 
+    } 
+};// end class Ct_169_170 
+
+//---- 41 ---- 
+class Itr_83_84 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_83_84 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_81_82 ; 
+      element[ 2 ]=  new Ct_167_168 ; 
+      element[ 3 ]=  new Ct_169_170 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_83_84 
+
+//---- 42 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_User){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_13_14 ; 
+    } 
+};// end class Comp_15_16 
+
+//---- 43 ---- 
+class Comp_21_22 : public Composite_producer { 
+public: // constructor 
+    Comp_21_22 (): Composite_producer(Event_MP_code_editor){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itp_19_20 ; 
+    } 
+};// end class Comp_21_22 
+
+//---- 44 ---- 
+class Comp_39_40 : public Composite_producer { 
+public: // constructor 
+    Comp_39_40 (): Composite_producer(Event_MP_GUI){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itp_37_38 ; 
+    } 
+};// end class Comp_39_40 
+
+//---- 45 ---- 
+class Comp_57_58 : public Composite_producer { 
+public: // constructor 
+    Comp_57_58 (): Composite_producer(Event_MP_parser){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itp_55_56 ; 
+    } 
+};// end class Comp_57_58 
+
+//---- 46 ---- 
+class Comp_75_76 : public Composite_producer { 
+public: // constructor 
+    Comp_75_76 (): Composite_producer(Event_Abstract_syntax_tree){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_73_74 ; 
+    } 
+};// end class Comp_75_76 
+
+//---- 47 ---- 
+class Comp_85_86 : public Composite_producer { 
+public: // constructor 
+    Comp_85_86 (): Composite_producer(Event_Trace_generator){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_83_84 ; 
+    } 
+};// end class Comp_85_86 
+
+//---- 48 ---- 
+class SCHEMA_MP_architecture: public Composite_producer {
+public: // constructor 
+    SCHEMA_MP_architecture(): Composite_producer(Event_MP_architecture){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 11 ]; 
+      element[0]= new Composite_secondary_producer(Event_User);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_MP_code_editor);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_25_26_ob(Event_SIMPLE_LIST_25_26);
+      element[3]= new Composite_secondary_producer(Event_MP_GUI);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_49_50_ob(Event_SIMPLE_LIST_49_50);
+      element[5]= new Composite_secondary_producer(Event_MP_parser);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_69_70_ob(Event_SIMPLE_LIST_69_70);
+      element[7]= new Composite_secondary_producer(Event_Abstract_syntax_tree);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[7] -> type = ROOT_node; 
+      element[8]= new SIMPLE_LIST_79_80_ob(Event_SIMPLE_LIST_79_80);
+      element[9]= new Composite_secondary_producer(Event_Trace_generator);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[9] -> type = ROOT_node; 
+      element[10]= new SIMPLE_LIST_143_144_ob(Event_SIMPLE_LIST_143_144);
+    } 
+};// end class SCHEMA_MP_architecture
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    // SHOW Diagram 
+    graph_container.insert(pair<int, graph_object>( 1,GRAPH_101_Diagram));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example28_MP_model_of_MP_architecture.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_15_16 temp_49; temp_49.harvest();
+    Comp_21_22 temp_50; temp_50.harvest();
+    Comp_39_40 temp_51; temp_51.harvest();
+    Comp_57_58 temp_52; temp_52.harvest();
+    Comp_75_76 temp_53; temp_53.harvest();
+    Comp_85_86 temp_54; temp_54.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_MP_architecture temp_55; temp_55.harvest();
+   temp_55.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"MP_architecture"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.json
new file mode 100644
index 0000000..e69de29
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.mp
new file mode 100644
index 0000000..3626418
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.mp
@@ -0,0 +1,148 @@
+/* 	Example 28
+ 	MP compiler/trace generator architecture model 
+    
+    run for scope 1 or more
+    
+===================================================*/
+SCHEMA MP_architecture
+
+ROOT User:
+	(+ 	[ load_MP_file ]
+		( MP_model_editing | browsing_MP_code )
+		press_RUN_button
+		(	browse_event_trace 		| 
+			syntax_errors_detected  )
+		[ save_MP_file ]
+	+)
+	end_of_session
+;
+/*--------------------------------------------------*/
+
+ROOT MP_code_editor:
+	(+  
+		( 	MP_model_editing | 
+			browsing_MP_code )
+	+)
+;
+
+User, MP_code_editor SHARE ALL MP_model_editing, browsing_MP_code;
+
+/*--------------------------------------------------*/
+
+ROOT MP_GUI:
+	(+ 	[ load_MP_file ]
+		press_RUN_button
+		input_MP_code
+		/* trace visualization happens only if there are no syntax errors, 
+			and trace generator has been called */
+		( receive_json_file
+		  visualize_trace 			|
+
+          syntax_errors_detected 	)
+		[ save_MP_file ]
+	+)
+;
+
+User, MP_GUI SHARE ALL load_MP_file, save_MP_file,
+						press_RUN_button;
+
+COORDINATE 	$v: visualize_trace,
+			$b: browse_event_trace 	 
+	DO ADD $v PRECEDES $b; OD;
+
+/*--------------------------------------------------*/
+
+ROOT MP_parser:
+	(+	input_MP_code
+		perform_syntax_analysis
+		( 	write_abstract_syntax_tree  |
+			syntax_errors_detected      )
+	+)
+;
+
+MP_parser, MP_GUI SHARE ALL input_MP_code;
+
+User, MP_parser, MP_GUI SHARE ALL syntax_errors_detected;
+
+COORDINATE 	$p: press_RUN_button,
+			$r: input_MP_code
+	DO ADD $p PRECEDES $r; OD;
+/*--------------------------------------------------*/
+
+ROOT Abstract_syntax_tree:
+	(* 	write_abstract_syntax_tree
+		read_abstract_syntax_tree 
+	*);
+
+MP_parser, Abstract_syntax_tree SHARE ALL write_abstract_syntax_tree;
+/*--------------------------------------------------*/
+
+ROOT Trace_generator:
+	(* 	read_abstract_syntax_tree
+		generate_Cpp_file
+		run_Cpp_compiler
+		run_executable
+		produce_json_file
+	*);
+
+Abstract_syntax_tree, Trace_generator SHARE ALL read_abstract_syntax_tree;
+
+COORDINATE 	$p: produce_json_file, 
+			$r: receive_json_file
+	DO ADD $p PRECEDES $r; OD;
+/*--------------------------------------------------*/
+
+/* trace annotations */
+SAY(" Scope " $$scope " Trace #" trace_id );
+
+/*================================================================
+ Processing event trace to find dependencies between components.
+ Produces a UML-like Component Diagram. This code is reusable, 
+ and can be copied/pasted into any other MP model.
+ See Sec. 5.3 in MP v.4 Manual
+  ================================================================*/
+GRAPH Diagram { TITLE ("main component interactions");};
+
+	COORDINATE 	$E1: ($$ROOT | $$COMPOSITE) DO 
+		COORDINATE	$E2: ($$ROOT | $$COMPOSITE) DO
+			WITHIN Diagram{
+    /* For each valid event trace find all root and composite 
+        event instances within the event trace and add them to the graph. */ 
+		 		Node$a: LAST ($E1);
+				Node$b: LAST ($E2);
+	/* LAST option in the node constructors ensures
+    	there will be only a single instance of a node 
+		in the graph for each root and composite event 
+        found in the event trace */
+
+	/* If event E1 is IN another event E2, add an arrow “E2 calls E1” */
+				IF $E1 IN $E2 THEN
+  					ADD Node$b ARROW("calls") Node$a; 
+				FI;
+	
+   /* We look for interactions between components and data structures.
+
+	Interactions between components, usually are represented by coordination of 
+	events in the interacting components (presence of PRECEDES between events 
+    in different threads).
+    
+ 	Interactions between components and data structures are modeled by shared events, 
+    since data structures are usually modeled as a set of operations performed on them. */ 
+		
+				IF  $E1 !=  $E2 	                        AND
+                	NOT ($E1 IN $E2 OR $E2 IN $E1) 			AND
+               		(	( EXISTS 	$E3: $$EVENT ($E3 IN $E1 AND $E3 IN $E2) ) OR
+                        
+  			   			( EXISTS 	$E3: $$EVENT FROM $E1, 
+                			  		$E4: $$EVENT FROM $E2 ($E3 PRECEDES $E4) ) ) 	THEN
+  			   			ADD Node$a LINE("interacts with") Node$b;
+                FI;
+            }; /* end WITHIN Diagram */
+		OD; 
+	OD; /* end of $E1 and $E2 loops */
+
+GLOBAL
+/* When trace derivation is completed, data from the traces has been accumulated in
+	 the graph and is ready to be shown */
+SHOW Diagram;
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp.txt
new file mode 100644
index 0000000..735bdc5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example28_MP_model_of_MP_architecture tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.tree
new file mode 100644
index 0000000000000000000000000000000000000000..730d1ab81d308c3d53af63bfc976fbfa8c17f02a
GIT binary patch
literal 24576
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.txt
new file mode 100644
index 0000000..adb8b70
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example28_MP_model_of_MP_architecture.txt
@@ -0,0 +1,19 @@
+generating traces for scope 3 
+completed User: 	4368 traces (0 MARKed) 	60000 events 
+		average 13.7363 ev/trace 	min 5 	max 17
+
+completed MP_code_editor: 	14 traces (0 MARKed) 	48 events 
+		average 3.42857 ev/trace 	min 2 	max 4
+
+completed MP_GUI: 	584 traces (0 MARKed) 	8108 events 
+		average 13.8836 ev/trace 	min 4 	max 19
+
+completed MP_parser: 	14 traces (0 MARKed) 	116 events 
+		average 8.28571 ev/trace 	min 4 	max 10
+
+completed Abstract_syntax_tree: 	4 traces (0 MARKed) 	16 events 
+		average 4 ev/trace 	min 1 	max 7
+
+completed Trace_generator: 	4 traces (0 MARKed) 	34 events 
+		average 8.5 ev/trace 	min 1 	max 16
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.cpp
new file mode 100644
index 0000000..f4f35f1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.cpp
@@ -0,0 +1,587 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA stack1 trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > p2_number_attribute;
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( p2_number_attribute[event1] != p2_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    p2_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!p2_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("p2",p2_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "p2"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         p2_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_push
+    , Event_pop
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_13_14
+    , Event_SIMPLE_LIST_53_54
+       // ADD operations 
+       // ROOT events 
+    , Event_Stack
+       // main schema event 
+    , Event_stack1 }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "push"
+     , "pop"
+     , "SIMPLE_LIST_13_14"
+     , "SIMPLE_LIST_53_54"
+     , "Stack"
+     , "stack1" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_5(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_6(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_pop){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_20(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_push){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+bool Quantified_expr_7_8(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int x_variable;
+     int pivot_x_variable = Root_table[Event_Stack];
+
+     // loop 1 for x_variable 
+     for( x_variable = 0; x_variable < len; x_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ x_variable  * len +  pivot_x_variable 
+]) && 
+           (   
+            (Stack[x_variable]-> name == Event_pop)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( special_function_5(current_host, x_variable ) < special_function_6(current_host, 
+x_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 6 ---- 
+class SIMPLE_LIST_13_14_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_13_14_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_7_8(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_13_14_ob class
+
+//---- 7 ---- 
+class SIMPLE_LIST_53_54_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_53_54_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute p2 assignment 
+    p2_number_attribute[0]=(1 / (float)( 1 + 1 )) ; 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e_variable; // thread variable
+  vector<int> e_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e_variable = i; 
+      if( e_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_pop)|| (Stack[i]->name == Event_push))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e_variable_list.begin(); s != e_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e_variable_list.size();
+  if(thread_length != e_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e_variable= e_variable_list[i];
+   if( ( special_function_19(current_host, e_variable ) == special_function_20(current_host, 
+e_variable ) )){} 
+  else{ 
+   if( (Stack[e_variable]->name == Event_pop)){ 
+   // attribute p2 assignment 
+    p2_number_attribute[0]*=2.500000E-01; 
+   }// end THEN 
+  else{ 
+   // attribute p2 assignment 
+    p2_number_attribute[0]*=7.500000E-01; 
+   }// end IF 
+   }// end IF 
+   // attribute p2 assignment 
+    p2_number_attribute[e_variable]=
+       p2_number_attribute[0] ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_pop)|| (Stack[i]->name == Event_push))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ x_variable ]->name]; 
+     convert <<" with probability ";
+     convert << 
+       p2_number_attribute[x_variable] ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Trace ";
+     convert << 
+       trace_id_attribute ; 
+     convert <<" for scope ";
+     convert << 1 ; 
+     convert <<" has probability ";
+     convert << 
+       p2_number_attribute[0] ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_53_54_ob class
+
+//---- 8 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_push); 
+      element[ 1 ]=  new Atomic_producer(Event_pop); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  7.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 9 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 10 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_Stack){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+      element[ 1 ]=  new SIMPLE_LIST_13_14_ob(Event_SIMPLE_LIST_13_14); 
+    } 
+};// end class Comp_15_16 
+
+//---- 11 ---- 
+class SCHEMA_stack1: public Composite_producer {
+public: // constructor 
+    SCHEMA_stack1(): Composite_producer(Event_stack1){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[0]= new Composite_secondary_producer(Event_Stack);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new SIMPLE_LIST_53_54_ob(Event_SIMPLE_LIST_53_54);
+    } 
+};// end class SCHEMA_stack1
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example29_stack1_Bayesian_probability.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_15_16 temp_12; temp_12.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_stack1 temp_13; temp_13.harvest();
+   temp_13.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"stack1"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.mp
new file mode 100644
index 0000000..b0fc26d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.mp
@@ -0,0 +1,95 @@
+/* Example 29
+
+	An example of  Bayesian probability calculation.
+
+	run for scopes 1, 2, 3, and up.
+    
+    This example illustrates the main parts in probabilistic MP model construction:
+    
+    1) selection of the search space - the finite number of event instances, 
+    	including the event trace, which is an event by itself.
+    2) Rules for event attribute p2 calculation.
+    3) The p2 attribute represents the probability for a particular event 
+    	instance (including the trace) to appear on the MP output.
+        
+    When run on Firebird, the output also shows Type 1 trace probability 
+    (p=nnnn on the right scroll bar), 
+    which will be different from the calculated Type 2 values.
+    
+    Note. For this simple example it is possible to run more than 5 iterations 
+    of push/pop (beyond the max standard scope of 5) by using the explicit iteration option,
+    where M is the desired number of iterations.
+    
+    ROOT Stack: (*<0..M> ( <<0.75>> push | <<0.25>> pop ) *)
+    this will require to update the first step in p2 assignment (line 57)
+    it will become p2 := 1/(M + 1);
+==================================================================*/
+
+SCHEMA stack1
+
+ROOT Stack: (* ( <<0.75>> push | <<0.25>> pop ) *)
+		/* probabilities for alternatives are here to enable also 
+			the default Type 1 trace probability calculation, in order 
+			to compare it with the Bayesian */
+	BUILD { 
+        /* if an element is retrieved, it should have been stored before */
+          ENSURE FOREACH $x: pop FROM Stack
+			( #pop BEFORE $x < #push BEFORE $x );
+    }
+;/* end BUILD for Stack */
+
+/*==============================================================*/
+/* here starts the part of model responsible for Bayesian logic */
+/*==============================================================*/
+ATTRIBUTES{ number p2;};
+/* the attribute p2 represents a probability of event 
+	to be included in the current trace.
+    Since the whole trace also is an event, 
+    attribute p2 for it specifies the trace probability - 
+    the target of all this example */
+
+/* first, let's bring the probability to select the number of iterations.
+	For scope $$scope there may be 0, 1, 2, ... $$scope iterations.
+	Total ($$scope + 1) choices.
+	Hence: assuming that each choice has equal probability 1/($$scope + 1)
+    stand alone p2 is attribute of the whole event trace */
+
+	p2:= 1/($$scope + 1);
+/* 	here the default is THIS.p2 := 1/($$scope + 1); 
+	p2 is an attribute of the whole trace.
+    The interpretation: "the probability of getting the trace segment so far" */
+
+/* by now the valid trace has been derived 
+	and we can proceed with decorating its events with attribute values.
+    COORDINATE traverses its thread in order of derivation (the default) */
+COORDINATE $e: (pop | push)
+DO
+	IF #pop BEFORE $e ==  #push BEFORE $e THEN 
+		/* if the condition above holds, the choice of event $e 
+        is unambiguous: it should be 'push', 
+        and its probability is the same as for the previous event */
+	ELSE
+		/* otherwise we have to choose one of the pop/push 
+        	with corresponding probability.
+			Notice that the option #pop BEFORE $e > #push BEFORE $e has been eliminated 
+			by ENSURE filter during the valid trace derivation */
+		IF $e IS pop THEN p2 *:= 0.25;
+					 ELSE p2 *:= 0.75; /* for 'push' */
+		FI;
+	FI;
+
+	/* Now we can set the probability for $e,
+    	this is done for the purpose to show the sequence of pop/push later.
+       This $e.p2 attribute is not actually needed in order 
+        to calculate p2 for the trace */ 
+	$e.p2 := p2;
+OD;
+
+/*=================================================*/
+/* for debugging purposes let's show the sequence 
+	of pop/push with their probabilities in order of derivation */
+COORDINATE $x: (pop | push)
+	DO SAY($x " with probability " $x.p2); OD;
+
+/**** final report ****/
+SAY("Trace " trace_id " for scope " $$scope " has probability " p2);
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp.txt
new file mode 100644
index 0000000..50e59ae
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example29_stack1_Bayesian_probability tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.tree
new file mode 100644
index 0000000000000000000000000000000000000000..af9dfb6cd6b91ce926aba098b9f1773fab8c88f8
GIT binary patch
literal 8704
zcmeHMYiu0V6~4RnPS#!$V#jGhYEly*P16*-4?hAS!EqeoG$g@xDWoaG+8Nsm>)mB`
zoCi%Kf-0JZ6h(-ph(|?J3RI#9<p*t1grGu*MiiwHr4>R|8bv5SDnt=N6rq`Z=RS7k
z?o1r2s{O^a#%Ff!x!-x8duKNlW2^yxvzZt!h}X=Ri|5`&pmESI;abR;!Cp_g4UAzb
zj>mj>OE9-Weo)V_jz$s}cv&O<+(z(q11|yE3u=H~13C+I9j?u!M~w5++Mz95M!Z|-
zE<74o9DicC5aMlPY**R7lW1^26my$MZ&272#CKCzw>`-1-v{w4)743DoUux|!iWY3
zw+ps<lfZ`qJsWfm=w8r^LGQzLnB<Q)kvy))T;XrHkq@^8Jdc3C74$Js^83%koWUj+
zjo>z<_cLO?{(n$!cOGz#0T1%L<2onB8{y!?ZNvO);F}M65|m>74z9Cxau?v)`#O&L
z)QD)f$Pe!mtiJ>_PEijJgZ11+apitkRF_AMG3L$D*C{`czBBr3p;)K!eHnTziHW?p
zBF2h^s^cxa03Y&)^L6@sq$>@CANd+%Zae5I&`UvAL+9&bT)RlVjgoH@_%_eLcZ=lP
z2EOev#0H-i1AkoihtS0TPxexd({R56{))8Mj<M15jy;|OynQ6sud7N1d<UX&4Q77F
z?GX8?^26CvvAlyZR?1IV-XV$m0B|2B+`2l1pLrdE1_wU*{o*Lr*2h`K&tO0P1=Tap
z59BY_#T1hFth)1&RXj1%sPy$-0RGFkPT+b=tnp+#6YPpVU5@1(A9-)EM^o-))Snud
zOMUEbF*a_Or@V79#_j%4m&w<mP7L;IeceZL9g6q7>rht)`?O7ymy8Q}t?|fp6yM0a
zYDc|M{w<C(uOkkgp_B{5xPGWpTBrQM^LBZh<?V?y)j4Q}>fBoq2alB74ZJJxtXFka
z-^X-kus_aruOxc!Z``F)&R2Cg-0rn;ktgfoBLCJyzpW$(`MeDH+oJK6w4mM`Z->NF
zc{dKcN?fzgr8>VmF7j?K?D!f!qfdGJ1Ru5+J~-b2%rD2>LC~**9s=Hx2)rjG-cj&j
zZ}Xl6-*YqY{Z{h52)<VZU#(w}es4;=lX1~sP6<CCyZroqH|!hAM;gKU-I=$Mr(s^=
zGuSJqC{7yg=`gQ{e5Db>Jrm|7J`L||n8!mN(+J_c7v?2Co~P(<2AeZqtA}&49zKk&
zhXng&Y8BQ~KJoncEE=C=&@kBkk<oIwsOj&9*QmTV*hf#f-;nxU#qIX{R<eP4ttzSl
z-$Q=W;Q4(u;@qy!3oie^)-OB3zZ88Z4T|0n90ohwNqRtUU;Z-4&*=Cb>VZa0{wjSw
zh)MV8cTW$lm-b;F;OnxGzy3n&VjXUdVXs*=?>gWF<2+WLs(4$Y*YopH7x0G~M7*%?
z*poO%jWmdQy-ln$*aug;I2-c3=+W_AoE5#>&xbGfqdTJKmHixdWgYG{z;&Y6kze@!
zxi5O&$G!I0aNn&$?`wIy5+sX;cL4D^i0dI-M{qrX>!`R4_R|!dC%InG!(h*(=$z?)
z{<y6+5Bs(JeKxF<hq|E=j0^7*&xLu3&tTupQe9BLRU9q~%X?n#gU3LrKOPse!Mx>l
z_gaJK^RKJbgi7-L^MJ;8Lg&-+`VIKxO?_U~QIb9Wg2469FC6!z&d-H&`ToAg`PSC$
zN2eg`UGh?(uHM5lT*2YVI@0`pPUj(hRW}A3jE`&>95&dg7CK)A_c6Zze%K)P-;X%W
zczB8Ol8qw%D5xMmk3%comzDs(4V2=rxRH6wC@TZ|MMmxLzUH2+gAm>-iMLwfZ2;a-
z9p3f`JemLeJ!-YCC%0={;!T25o!h{58u^*jT_gCF*Es(^@X`4h{f@`y9wC$CUyq=`
zLhs(N9=?U*&R|XRYxRQqP<5mE=TI2OLtfJe)(P)l4}^J%&tTggbo+>YuSv+ezlrJ+
zuaeAN%LMJG`4darb#?tZi5Ryk>j@2ZBmZddzWX`$3od7X^!4kCpJNU;ivIbau6Kg{
zwFR&|pOj?o_lKn4k2DIuKP=V-^Mvy~(kSxuF-|kyQ;6sD)Wzj~`=Tz78x#1);~@H#
zzi%A}#!LD-%4-^-IJ~U$DQNDm_3+>CqvsVL*`w^{ep2s$uQrNv*K1;ZAYXhvPeRXA
zI=+W`q49sy^DU|8+e**BzvA8yA^)_lr?TH*FJ0<x5c$RH>r6DC&%ghEcaZY;vO{!k
z4CRBW@3XSL--nMrpuTmR+`lGL;(Lw9pK&)54(j5YM1TGx!cDTjw4f&Ox$hw1C)k-5
zv@<S8#c8I#5R9jm$DitXT+7eTE@ZF0U%bcU<^DR+ChB^{Jkh_uzs}tx?YOb7o?Y0U
zq)z1zua-~y+r@tU!}eNV+FZA9x9V#N#jC~n55E%fpMFuq!QbzAe>!ix|9L6xH#Pgu
z^IoqsPO`Hy9!vJt$D7wndqVV;#R>5q)sbM{@&u39jPFr7@U0enDy|$)z4vTLi2B<o
ze1LQ41GRJLmWaF?Nr*o5j(lIm_aNTQ32vuL=hfT8zEn064c03^2i+0PUpt=`6Z-kI
zB>k{k>5IJH%H!Ff?DOu1%|F0(pO5WH`=IIk>#(oa;&Ora6m8!+?Bgk$l)b9I8tf;F
zBF`DBULQgHXg_`u`aP8pb$L^SU!D)kBAN8m9g2vH!apYQj|2auh`6i1`?`$#2_YvK
zmzneWQEp$&e;3GW)z5?YJnnBr+h?$|?f*&LaQxxAdVV{M?MXX*eFERl(f0tVzD~>f
zIs^axL&gVR^oIKH$FdGS;WXoY3jWWi4)A@$w}59DjMu|lk{BKa``smj(3|VS&q;4A
zpgvXe>!Rp&3Q5b$_AoEWr=jsJjo_2|8SGz+Lhl{q7nLuahUgO+ff4Ng+J3%D@~swp
z^xwU?PLB-{dPrQ(|Lr>dp$LA7PkKc5zwPipozHJG@Ed?}{ywSrZ1C+hP+u$Bmh*Fe
zU7x?ud-Q#V-lq;2@*F6159a^pdM|&d4)2J>dqUtD?9U5SpHY2J+lP<J_3}K){dx=K
zTl>Np*F71r?p8Wazq`QgCwlopI$wVge_mdwS9$*WAH*L&c`&0oHfc@elUC6&>GzLB
zb*x;mjH;6#yEENfC{?B%bG%TrQsrq!-6!mF*{ROXJLRdum}%{_N=~)4T9~R7Ei*sn
z6v`zIwQOK_o}Oh^ngY&To8Mzq3;B{+vCE_R(L%A{?73>Ha^>e@ObnAwb4u1OljNID
zeza({=wi#2YD=|ZjTQ1mb9}nQb*Z-9HJvXxh4F&5!?bo+Y_43(@ZgPGHw~DZ28Tz?
zuB_RWYqF=IKb@VM=!XoGe)Z6}(pfW|YpsVjyTXsU=Y_b^E9c!*r$&$2JC{4p%sY-<
z7@c;kYHFeg&p`QNexkV_->;eJE;HTTgqYZQ@~mN7)#;+sT*~h(Oz<aRS((n}n#p!z
zJYTF@#@d1PTZRT&s#ehw5vo9_WtV2r<G%h4No<<jF-B>6YSglm1<WGC_N+n2HnV2#
zV)1~2%TuIjtX$erAeCn4tJT6pX$omzmMccJJZ+CzDM2`7Dqkc~&~~Ras}G5mHZyYr
zDIl1N<z1F-j+UoOJ5tjX*emYm_A5DX%Stod*<`^UzND?@H`7;Pj{lG%*xbKm%h0;P
z&3z*SKq}ii3edwcvn$P9XR~F(>H_6aa4y$l=6aiV*XEk=J)hZ?HoG$9B+lO2H!?D0
z_6-l;u=&OjGu>mRdyNr0KW25LI>yU(2lr4%OUGos+7U3cBT*^l3nl!_MdREWd2@12
z!kVf$d*sK{Yc8(tDUD6q<x=5p9^$5&O-YBOn1vllxF1zja*UyYjRXB77YSmf(`Gs|
zYn?ToN0w;mo9!{Pz1ovpmznEs3HmpiHM2QxZw?{P>1JlT%xrgS$F71isTrkVX47Ui
uqhX@_vz<-Oq$Rq7#+}KUnVkNl$ISHVax+MmOx>d{Gt=#S5&!=#{{IFmF?k#S

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.txt
new file mode 100644
index 0000000..ecf6b39
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example29_stack1_Bayesian_probability.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed Stack: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed stack1: 	2 traces (0 MARKed) 	8 events 
+		average 4 ev/trace 	min 3 	max 5
+
+Elapsed time 0.000252 sec, Speed: 43650.8 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.cpp
new file mode 100644
index 0000000..7609167
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.cpp
@@ -0,0 +1,587 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Data_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+report_object REPORT_29_basic_statistics;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_working
+    , Event_writing
+    , Event_reading
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+    , Event_SIMPLE_LIST_46_47
+       // ADD operations 
+       // ROOT events 
+    , Event_Writer
+    , Event_File
+    , Event_Reader
+       // main schema event 
+    , Event_Data_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "working"
+     , "writing"
+     , "reading"
+     , "SIMPLE_LIST_17_18"
+     , "SIMPLE_LIST_46_47"
+     , "Writer"
+     , "File"
+     , "Reader"
+     , "Data_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_32(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_writing){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_36(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_reading){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_40(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_working){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 4 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Writer_source = Root_table[Event_Writer];
+   // lists of shared events for  Writer 
+  vector<int> Writer_writing_list;
+
+  int File_source = Root_table[Event_File];
+   // lists of shared events for  File 
+  vector<int> File_writing_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Writer_source ]){ 
+     if( Stack[i]->name == Event_writing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Writer_writing_list.begin();
+          s != Writer_writing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Writer_writing_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + File_source ]){ 
+     if( Stack[i]->name == Event_writing ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  File_writing_list.begin();
+          s != File_writing_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) File_writing_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = File_writing_list.size();
+     if(Writer_writing_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = File_writing_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Writer_writing_list[i], File_writing_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 5 ---- 
+class SIMPLE_LIST_46_47_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_46_47_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Reader_source = Root_table[Event_Reader];
+   // lists of shared events for  Reader 
+  vector<int> Reader_reading_list;
+
+  int File_source = Root_table[Event_File];
+   // lists of shared events for  File 
+  vector<int> File_reading_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Reader_source ]){ 
+     if( Stack[i]->name == Event_reading ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Reader_reading_list.begin();
+          s != Reader_reading_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Reader_reading_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + File_source ]){ 
+     if( Stack[i]->name == Event_reading ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  File_reading_list.begin();
+          s != File_reading_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) File_reading_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = File_reading_list.size();
+     if(Reader_reading_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = File_reading_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Reader_reading_list[i], File_reading_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+    { // basic_statistics title generation 
+     ostringstream convert; 
+     convert <<"scope= ";
+     convert << 1 ; 
+     convert <<" trace ";
+     convert << 
+       trace_id_attribute ; 
+     REPORT_29_basic_statistics.title = convert.str();}
+    // CLEAR basic_statistics 
+     REPORT_29_basic_statistics.clean();
+    { // increment report 
+     ostringstream convert; 
+     convert <<"#writing= ";
+     convert << special_function_32(current_host, Root_table[Event_Data_flow]); 
+     REPORT_29_basic_statistics.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"#reading= ";
+     convert << special_function_36(current_host, Root_table[Event_Data_flow]); 
+     REPORT_29_basic_statistics.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"#working= ";
+     convert << special_function_40(current_host, Root_table[Event_Data_flow]); 
+     REPORT_29_basic_statistics.report_contents.push_back(convert.str());}
+    // SHOW basic_statistics 
+    report_container.insert(pair<int, report_object>( 1,REPORT_29_basic_statistics));
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_46_47_ob class
+
+//---- 6 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_working); 
+      element[ 1 ]=  new Atomic_producer(Event_writing); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 7 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 8 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_reading); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 9 ---- 
+class Sq_11_12 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_11_12 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_writing); 
+      element[ 1 ]=  new Itr_9_10 ; 
+    } 
+};// end class Sq_11_12 
+
+//---- 10 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_reading); 
+      element[ 1 ]=  new Atomic_producer(Event_working); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 11 ---- 
+class Itr_21_22 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_21_22 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_19_20 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_21_22 
+
+//---- 12 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_Writer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 13 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_File){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_11_12 ; 
+    } 
+};// end class Comp_13_14 
+
+//---- 14 ---- 
+class Comp_23_24 : public Composite_producer { 
+public: // constructor 
+    Comp_23_24 (): Composite_producer(Event_Reader){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_21_22 ; 
+    } 
+};// end class Comp_23_24 
+
+//---- 15 ---- 
+class SCHEMA_Data_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_Data_flow(): Composite_producer(Event_Data_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[0]= new Composite_secondary_producer(Event_Writer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_File);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18);
+      element[3]= new Composite_secondary_producer(Event_Reader);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_46_47_ob(Event_SIMPLE_LIST_46_47);
+    } 
+};// end class SCHEMA_Data_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example30_Local_Report.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_16; temp_16.harvest();
+    Comp_13_14 temp_17; temp_17.harvest();
+    Comp_23_24 temp_18; temp_18.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Data_flow temp_19; temp_19.harvest();
+   temp_19.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Data_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.mp
new file mode 100644
index 0000000..0271dd2
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.mp
@@ -0,0 +1,29 @@
+
+/* Example 30. Local Report within a trace.
+	run for scope 1 and up.
+*/
+SCHEMA Data_flow
+
+ROOT Writer: (* ( working | writing ) *);
+
+ROOT File:   (+ writing +) (* reading *);
+Writer, File SHARE ALL writing;
+	
+ROOT Reader: (* ( reading | working ) *);
+Reader, File SHARE ALL reading;
+
+REPORT basic_statistics {
+		TITLE ("scope= " $$scope " trace " trace_id);};
+
+/* Clear the contents after a trace derivation has been completed */
+CLEAR basic_statistics;
+
+/* fill the Report with data from the current event trace */
+SAY("#writing= " #writing) => basic_statistics;
+SAY("#reading= " #reading) => basic_statistics;
+SAY("#working= " #working) => basic_statistics;
+
+
+/* In order to make it visible together with the event trace, the SHOW command is needed */
+SHOW basic_statistics;
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp.txt
new file mode 100644
index 0000000..a6480c7
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example30_Local_Report tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.tree
new file mode 100644
index 0000000000000000000000000000000000000000..4baaa76eb8f0417a2b3533c505c95e7657dde1bd
GIT binary patch
literal 8192
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
TZl)3#7g4vq{X_fzU)%rRhm$G)

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.txt
new file mode 100644
index 0000000..3f90b15
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example30_Local_Report.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Writer: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed File: 	2 traces (0 MARKed) 	5 events 
+		average 2.5 ev/trace 	min 2 	max 3
+
+completed Reader: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed Data_flow: 	3 traces (0 MARKed) 	21 events 
+		average 7 ev/trace 	min 6 	max 8
+
+Elapsed time 0.000458 sec, Speed: 78602.6 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.cpp
new file mode 100644
index 0000000..4a2faff
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.cpp
@@ -0,0 +1,542 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA simple_message_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+report_object REPORT_19_statistics;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send
+    , Event_receive
+    , Event_does_not_receive
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_32_33
+       // ADD operations 
+       // ROOT events 
+    , Event_Sender
+    , Event_Receiver
+       // main schema event 
+    , Event_simple_message_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send"
+     , "receive"
+     , "does_not_receive"
+     , "SIMPLE_LIST_32_33"
+     , "Sender"
+     , "Receiver"
+     , "simple_message_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_20(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_does_not_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_21(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_22(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_23(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_24(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 6 ---- 
+class SIMPLE_LIST_32_33_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_32_33_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Sender_source = Root_table[Event_Sender]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  Receiver_source = Root_table[Event_Receiver]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Sender_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  Receiver_source ]){ 
+       if( (  (Stack[i]->name == Event_receive)|| (Stack[i]->name == Event_does_not_receive)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // statistics title generation 
+     ostringstream convert; 
+     convert <<"scope= ";
+     convert << 1 ; 
+     REPORT_19_statistics.title = convert.str();}
+   if( ( special_function_20(current_host, Root_table[Event_simple_message_flow])
+> 0 )){ 
+    { // increment report 
+     ostringstream convert; 
+     convert <<"trace ";
+     convert << 
+       trace_id_attribute ; 
+     convert <<" sent ";
+     convert << special_function_21(current_host, Root_table[Event_simple_message_flow])
+; 
+     convert <<" received ";
+     convert << special_function_22(current_host, Root_table[Event_simple_message_flow])
+; 
+     convert <<" ratio ";
+     convert << (special_function_23(current_host, Root_table[Event_simple_message_flow])
+/ (float)special_function_24(current_host, Root_table[Event_simple_message_flow])
+) ; 
+     REPORT_19_statistics.report_contents.push_back(convert.str());}
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_32_33_ob class
+
+//---- 7 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_send); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 8 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive); 
+      element[ 1 ]=  new Atomic_producer(Event_does_not_receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 9 ---- 
+class Itr_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_5_6 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_7_8 
+
+//---- 10 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Sender){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 11 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Receiver){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_7_8 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 12 ---- 
+class SCHEMA_simple_message_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_simple_message_flow(): Composite_producer(Event_simple_message_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Sender);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Receiver);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_32_33_ob(Event_SIMPLE_LIST_32_33);
+    } 
+};// end class SCHEMA_simple_message_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    { // increment report 
+     ostringstream convert; 
+     convert <<"total traces ";
+     convert << total_segments ; 
+     REPORT_19_statistics.report_contents.push_back(convert.str());}
+    // SHOW statistics 
+    report_container.insert(pair<int, report_object>( 1,REPORT_19_statistics));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+   JSON<<",{\"SAY\":[";
+   string c = "\""; 
+   for(vector<string>::iterator p2 = global_SAY_list_999999.begin(); 
+       p2 != global_SAY_list_999999.end(); p2++){ 
+     JSON<<c<<*p2<<"\""; c = ",\"";} 
+   JSON<<"]}"; 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example31_Global_report.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_13; temp_13.harvest();
+    Comp_9_10 temp_14; temp_14.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_simple_message_flow temp_15; temp_15.harvest();
+   temp_15.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"simple_message_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.mp
new file mode 100644
index 0000000..ad102ee
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.mp
@@ -0,0 +1,31 @@
+/* Example 31. Global report.
+	run for scope 1 and up
+-----------------------------*/
+SCHEMA simple_message_flow
+
+ROOT Sender:   (* send *);
+
+ROOT Receiver: (* (receive | does_not_receive) *);
+
+COORDINATE	$x: send 						 FROM Sender, 
+			$y: (receive | does_not_receive) FROM Receiver
+		DO ADD $x PRECEDES $y; OD;
+
+REPORT statistics { TITLE ("scope= " $$scope);};
+
+/* for each valid trace add report records */
+IF #does_not_receive > 0 THEN
+		SAY( 	"trace " trace_id " sent " #send
+		  		" received " #receive
+				" ratio " #receive/#send ) 	=> statistics;
+FI;
+/* Since no CLEAR operation is present, the contents of Report is preserved 
+	and augmented for each valid event trace */
+
+GLOBAL 
+
+SAY( "total traces " #$$TRACE) => statistics; 
+/* Global expression #$$TRACE provides number of valid event traces derived 
+	for the current scope */ 
+
+SHOW statistics;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp.txt
new file mode 100644
index 0000000..d3ba045
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example31_Global_report tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.tree
new file mode 100644
index 0000000000000000000000000000000000000000..f1da8411024c50cc2a7cdea7b64e1d66d2023094
GIT binary patch
literal 7680
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.txt
new file mode 100644
index 0000000..276153c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example31_Global_report.txt
@@ -0,0 +1,12 @@
+generating traces for scope 1 
+completed Sender: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Receiver: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed simple_message_flow: 	3 traces (0 MARKed) 	13 events 
+		average 4.33333 ev/trace 	min 3 	max 5
+
+Elapsed time 0.000259 sec, Speed: 81081.1 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.cpp
new file mode 100644
index 0000000..ea4e30a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.cpp
@@ -0,0 +1,1065 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Car_Race trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_73_Winner_trace;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Start
+    , Event_drive_lap
+    , Event_finish
+    , Event_winner
+    , Event_break
+    , Event_provide_start_signal
+    , Event_watch
+       // composite events 
+    , Event_Car
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_40_41
+    , Event_SIMPLE_LIST_92_93
+       // ADD operations 
+       // ROOT events 
+    , Event_Cars
+    , Event_Judge
+       // main schema event 
+    , Event_Car_Race }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Start"
+     , "drive_lap"
+     , "finish"
+     , "winner"
+     , "break"
+     , "provide_start_signal"
+     , "watch"
+     , "Car"
+     , "SIMPLE_LIST_40_41"
+     , "SIMPLE_LIST_92_93"
+     , "Cars"
+     , "Judge"
+     , "Car_Race" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_15(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_16(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_17(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_18(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_19(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_20(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_break){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_21(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_22(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_29(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_winner){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_34(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_35(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_winner){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+int special_function_62(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> follows_matrix [ pivot * len + i ]){ 
+         if(   Stack[i]->name == Event_finish){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 13 ---- 
+int special_function_74(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_winner){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 14 ---- 
+int special_function_76(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_drive_lap){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 15 ---- 
+bool Quantified_expr_23_24(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int c1_variable;
+     int pivot_c1_variable = 0; 
+     int c2_variable;
+     int pivot_c2_variable = 0; 
+
+     // loop 1 for c1_variable 
+     for( c1_variable = 0; c1_variable < len; c1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ c1_variable  * len +  pivot_c1_variable 
+]) && 
+           (   
+            (Stack[c1_variable]-> name == Event_Car)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for c2_variable 
+     for( c2_variable = 0; c2_variable < len; c2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ c2_variable  * len +  pivot_c2_variable 
+]) && 
+           (   
+            (Stack[c2_variable]-> name == Event_Car)   ) 
+           // checking DISJ 
+           &&  c2_variable  !=  c1_variable 
+           && !(current_host-> eq_matrix[ c2_variable * len + c1_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( (! ( ( special_function_15(current_host, c1_variable ) == 1 )&& ( special_function_16(current_host, 
+c2_variable ) == 1 ))|| ( special_function_17(current_host, c1_variable ) == special_function_18(current_host, 
+c2_variable ) ))&& (! ( ( special_function_19(current_host, c1_variable ) == 1 )
+&& ( special_function_20(current_host, c2_variable ) == 1 ))|| ( special_function_21(current_host, 
+c1_variable ) >= special_function_22(current_host, c2_variable ) )))) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 16 ---- 
+class SIMPLE_LIST_40_41_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_40_41_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_23_24(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_29(current_host, Root_table[Event_Cars])<= 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( (! ( special_function_34(current_host, Root_table[Event_Cars])> 0 )|| ( special_function_35(current_host, Root_table[Event_Cars])
+> 0 ))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_40_41_ob class
+
+//---- 17 ---- 
+class SIMPLE_LIST_92_93_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_92_93_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Judge_source = Root_table[Event_Judge]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Judge_source ]){ 
+       if( (  (Stack[i]->name == Event_provide_start_signal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Cars_source = Root_table[Event_Cars]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Cars_source ]){ 
+       if( (  (Stack[i]->name == Event_Start))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Cars_source = Root_table[Event_Cars];
+   // lists of shared events for  Cars 
+  vector<int> Cars_finish_list;
+
+  int Judge_source = Root_table[Event_Judge];
+   // lists of shared events for  Judge 
+  vector<int> Judge_finish_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Cars_source ]){ 
+     if( Stack[i]->name == Event_finish ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Cars_finish_list.begin();
+          s != Cars_finish_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Cars_finish_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Judge_source ]){ 
+     if( Stack[i]->name == Event_finish ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Judge_finish_list.begin();
+          s != Judge_finish_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Judge_finish_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Judge_finish_list.size();
+     if(Cars_finish_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Judge_finish_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Cars_finish_list[i], Judge_finish_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int w_variable; // thread variable
+  vector<int> w_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for w_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      w_variable = i; 
+      if( w_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_winner))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = w_variable_list.begin(); s != w_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) w_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source w_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = w_variable_list.size();
+  if(thread_length != w_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    w_variable= w_variable_list[i];
+   if( ( special_function_62(current_host, w_variable ) == 1 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // Winner_trace title generation 
+     ostringstream convert; 
+     convert <<"winner trace ";
+     convert << 
+       trace_id_attribute ; 
+     convert <<" for scope ";
+     convert << 1 ; 
+     GRAPH_73_Winner_trace.title = convert.str();}
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int car_event_variable; // thread variable
+  vector<int> car_event_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for car_event_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      car_event_variable = i; 
+      if( car_event_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Car)) && ( special_function_74(current_host, 
+car_event_variable ) > 0 ) ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = car_event_variable_list.begin(); s != car_event_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) car_event_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source car_event_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = car_event_variable_list.size();
+  if(thread_length != car_event_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    car_event_variable= car_event_variable_list[i];
+   // WITHIN Winner_trace 
+   int laps_75_node_var = -1; 
+   {// NEW_NODE 
+     ostringstream convert; 
+     convert << special_function_76(current_host, car_event_variable ) ; 
+     convert <<" laps";
+    laps_75_node_var = GRAPH_73_Winner_trace.create_new_node(convert.str());}
+  // add_arrow for GRAPH_73_Winner_trace 
+  int temp_1_1 ; { 
+     ostringstream convert; 
+     convert <<"Start";
+     temp_1_1 = GRAPH_73_Winner_trace . create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"followed by";
+     GRAPH_73_Winner_trace.add_arrow(temp_1_1,laps_75_node_var,convert.str());}
+  // add_arrow for GRAPH_73_Winner_trace 
+  int temp_2_2 ; { 
+     ostringstream convert; 
+     convert <<"finish";
+     temp_2_2 = GRAPH_73_Winner_trace . create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"followed by";
+     GRAPH_73_Winner_trace.add_arrow(laps_75_node_var,temp_2_2,convert.str());}
+  // add_arrow for GRAPH_73_Winner_trace 
+  int temp_3_1 ; { 
+     ostringstream convert; 
+     convert <<"finish";
+     temp_3_1 = GRAPH_73_Winner_trace . find_or_create_new_node 
+(convert.str());} 
+  int temp_4_2 ; { 
+     ostringstream convert; 
+     convert <<"winner";
+     temp_4_2 = GRAPH_73_Winner_trace . create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"followed by";
+     GRAPH_73_Winner_trace.add_arrow(temp_3_1,temp_4_2,convert.str());}
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    // SHOW Winner_trace 
+    graph_container.insert(pair<int, graph_object>( 5,GRAPH_73_Winner_trace));
+    // CLEAR Winner_trace 
+     GRAPH_73_Winner_trace.clean();
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_92_93_ob class
+
+//---- 18 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_drive_lap); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 19 ---- 
+class Opt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_winner); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_3_4 
+
+//---- 20 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_finish); 
+      element[ 1 ]=  new Opt_3_4 ; 
+    } 
+};// end class Sq_5_6 
+
+//---- 21 ---- 
+class Alt_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+      element[ 1 ]=  new Atomic_producer(Event_break); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_7_8 
+
+//---- 22 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Start); 
+      element[ 1 ]=  new Itr_1_2 ; 
+      element[ 2 ]=  new Alt_7_8 ; 
+    } 
+};// end class Sq_9_10 
+
+//---- 23 ---- 
+class Itr_44_45 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_44_45 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_finish); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_44_45 
+
+//---- 24 ---- 
+class Sq_46_47 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_46_47 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_provide_start_signal); 
+      element[ 1 ]=  new Atomic_producer(Event_watch); 
+      element[ 2 ]=  new Itr_44_45 ; 
+    } 
+};// end class Sq_46_47 
+
+//---- 25 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Car){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 26 ---- 
+class Comp_42_43 : public Composite_producer { 
+public: // constructor 
+    Comp_42_43 (): Composite_producer(Event_Cars){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_Car); 
+      element[ 1 ]=  new SIMPLE_LIST_40_41_ob(Event_SIMPLE_LIST_40_41); 
+    } 
+};// end class Comp_42_43 
+
+//---- 27 ---- 
+class Comp_48_49 : public Composite_producer { 
+public: // constructor 
+    Comp_48_49 (): Composite_producer(Event_Judge){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_46_47 ; 
+    } 
+};// end class Comp_48_49 
+
+//---- 28 ---- 
+class SCHEMA_Car_Race: public Composite_producer {
+public: // constructor 
+    SCHEMA_Car_Race(): Composite_producer(Event_Car_Race){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_Cars);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Judge);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_92_93_ob(Event_SIMPLE_LIST_92_93);
+    } 
+};// end class SCHEMA_Car_Race
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example32_Local_graph.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_11_12 temp_29; temp_29.harvest();
+   // harvesting traces for ROOT events 
+    Comp_42_43 temp_30; temp_30.harvest();
+    Comp_48_49 temp_31; temp_31.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Car_Race temp_32; temp_32.harvest();
+   temp_32.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Car_Race"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.mp
new file mode 100644
index 0000000..625c9e8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.mp
@@ -0,0 +1,67 @@
+/* Example 32. Local graph within the event trace.
+	run for scope 1 and up
+------------------------------------------------*/
+SCHEMA Car_Race
+
+Car:    Start 
+        (* drive_lap *) 
+        ( finish [ winner ] | break);
+
+ROOT Cars:	{+ Car +}
+	BUILD{
+	/* everybody who finishes drives the same number of laps */
+		ENSURE FOREACH DISJ $c1: Car, $c2: Car 
+			(#finish FROM $c1 == 1 AND #finish FROM $c2 == 1 -> 
+				#drive_lap FROM $c1 == #drive_lap FROM $c2) AND
+				/* if it breaks, then earlier */
+			(#finish FROM $c1 == 1 AND #break FROM $c2 == 1 -> 
+				#drive_lap FROM $c1 >= #drive_lap FROM $c2);
+					
+				/* there always will be at most one winner */
+				ENSURE #winner <= 1;
+			
+				/* if at least one car finishes, there should be a winner */
+ENSURE #finish > 0 -> #winner > 0;  };
+
+
+ROOT Judge:	provide_start_signal 
+				watch  
+				(* finish *);
+
+COORDINATE	$a: provide_start_signal	FROM Judge
+	DO 	COORDINATE  $b: Start FROM Cars
+			DO ADD $a PRECEDES $b; OD;
+	OD;
+Cars, Judge SHARE ALL finish;
+
+COORDINATE $w: winner
+	DO ENSURE #finish BEFORE $w == 1; OD;
+
+/* =======================================================
+  Here starts the trace view graph construction. 
+  Operations are performed after a valid event trace has been 
+  successfully derived. 
+=========================================================*/
+GRAPH Winner_trace {
+  TITLE( "winner trace " trace_id " for scope " $$scope);};
+
+/* We want to render a graph extracted from each valid event trace, 
+so the graph is cleared before the trace processing starts. */
+
+	COORDINATE $car_event: Car SUCH THAT #winner FROM $car_event > 0
+		  DO 
+
+/* the following WITHIN command provides a context for performing 
+	operations on the Winner_trace graph */
+WITHIN Winner_trace{
+    Node$laps: NEW(#drive_lap FROM $car_event " laps");
+    ADD NEW("Start") 	ARROW("followed by") 	Node$laps;
+    ADD Node$laps 		ARROW("followed by") 	NEW("finish");
+    ADD LAST("finish") 	ARROW("followed by") 	NEW("winner");
+};  /* end of WITHIN Winner_trace  body */
+
+	OD; /* end of Car loop */
+
+SHOW Winner_trace;
+CLEAR Winner_trace ;
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp.txt
new file mode 100644
index 0000000..e3481d7
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example32_Local_graph tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.tree
new file mode 100644
index 0000000000000000000000000000000000000000..bdd9b8d633d57e4c4bb31de9a79577394bb6460f
GIT binary patch
literal 16896
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
NuGasb|Np!B|6kcho@f97

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.txt
new file mode 100644
index 0000000..bf61533
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example32_Local_graph.txt
@@ -0,0 +1,15 @@
+generating traces for scope 1 
+completed Car: 	6 traces (0 MARKed) 	23 events 
+		average 3.83333 ev/trace 	min 3 	max 5
+
+completed Cars: 	4 traces (0 MARKed) 	20 events 
+		average 5 ev/trace 	min 4 	max 6
+
+completed Judge: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Car_Race: 	4 traces (0 MARKed) 	38 events 
+		average 9.5 ev/trace 	min 8 	max 11
+
+Elapsed time 0.000926 sec, Speed: 95032.4 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.cpp
new file mode 100644
index 0000000..fdb7dd8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.cpp
@@ -0,0 +1,434 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Statistics trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > count_number_attribute;
+//-- node attributes -- 
+       map<int,  float > NODE_count_number_attribute;
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( count_number_attribute[event1] != count_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    count_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("count",count_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_13_Stat;
+report_object REPORT_32_Total_event_statistics;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_a
+    , Event_b
+    , Event_c
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_14_15
+    , Event_SIMPLE_LIST_28_29
+       // ADD operations 
+       // ROOT events 
+    , Event_A
+    , Event_B
+       // main schema event 
+    , Event_Statistics }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "a"
+     , "b"
+     , "c"
+     , "SIMPLE_LIST_14_15"
+     , "SIMPLE_LIST_28_29"
+     , "A"
+     , "B"
+     , "Statistics" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_14_15_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_14_15_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    { // Stat title generation 
+     ostringstream convert; 
+     convert <<"Total event count as graph for scope ";
+     convert << 1 ; 
+     GRAPH_13_Stat.title = convert.str();}
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_14_15_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_28_29_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_28_29_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == Atom || Stack[i]->type == ROOT_node || 
+Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+   // WITHIN Stat 
+   int e_16_node_var = -1; 
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ x_variable ]->name]; 
+    e_16_node_var = GRAPH_13_Stat.find_or_create_new_node(convert.str());}
+   // attribute count assignment 
+    NODE_count_number_attribute[e_16_node_var]+=1 ; 
+  // add_arrow for GRAPH_13_Stat 
+  int temp_1_2 ; { 
+     ostringstream convert; 
+     convert <<"trace ";
+     convert << 
+       trace_id_attribute ; 
+     temp_1_2 = GRAPH_13_Stat . find_or_create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"in trace";
+     GRAPH_13_Stat.add_arrow(e_16_node_var,temp_1_2,convert.str());}
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_28_29_ob class
+
+//---- 3 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+      element[ 1 ]=  new Atomic_producer(Event_b); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 4 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 5 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 6 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_B){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_c); 
+    } 
+};// end class Comp_9_10 
+
+//---- 7 ---- 
+class SCHEMA_Statistics: public Composite_producer {
+public: // constructor 
+    SCHEMA_Statistics(): Composite_producer(Event_Statistics){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_B);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_14_15_ob(Event_SIMPLE_LIST_14_15);
+      element[3]= new SIMPLE_LIST_28_29_ob(Event_SIMPLE_LIST_28_29);
+    } 
+};// end class SCHEMA_Statistics
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    { // Total_event_statistics title generation 
+     ostringstream convert; 
+     convert <<"Total event count as Report";
+     REPORT_32_Total_event_statistics.title = convert.str();}
+   // WITHIN Stat 
+  // loop_over_graph for GRAPH_13_Stat 
+  { // loop over graph GRAPH_13_Stat 
+    int a_33_node_var ; 
+    int end_limit_2 = GRAPH_13_Stat .nodes.size(); 
+    for(int temp = 0; temp < end_limit_2 ; temp++){ 
+     a_33_node_var = temp; 
+   if( ( 
+       NODE_count_number_attribute[a_33_node_var] > 0 )){ 
+  // add_arrow for GRAPH_13_Stat 
+  int temp_3_2 ; { 
+     ostringstream convert; 
+     convert << 
+       NODE_count_number_attribute[a_33_node_var] ; 
+     temp_3_2 = GRAPH_13_Stat . create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert <<"total count";
+     GRAPH_13_Stat.add_arrow(a_33_node_var,temp_3_2,convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     if( a_33_node_var >= 0 && a_33_node_var < GRAPH_13_Stat .nodes.size()) 
+       convert << GRAPH_13_Stat .nodes[ a_33_node_var ]; 
+     else convert << "Undefined node"; 
+     convert <<" event count: ";
+     convert << 
+       NODE_count_number_attribute[a_33_node_var] ; 
+     REPORT_32_Total_event_statistics.report_contents.push_back(convert.str());}
+   }// end THEN 
+   } } // end GRAPH_13_Stat loop 
+    // SHOW Stat 
+    graph_container.insert(pair<int, graph_object>( 4,GRAPH_13_Stat));
+    // SHOW Total_event_statistics 
+    report_container.insert(pair<int, report_object>( 5,REPORT_32_Total_event_statistics));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+   JSON<<",{\"SAY\":[";
+   string c = "\""; 
+   for(vector<string>::iterator p2 = global_SAY_list_999999.begin(); 
+       p2 != global_SAY_list_999999.end(); p2++){ 
+     JSON<<c<<*p2<<"\""; c = ",\"";} 
+   JSON<<"]}"; 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example34_Graph_as_data_structure.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_8; temp_8.harvest();
+    Comp_9_10 temp_9; temp_9.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Statistics temp_10; temp_10.harvest();
+   temp_10.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Statistics"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.mp
new file mode 100644
index 0000000..873759c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.mp
@@ -0,0 +1,50 @@
+/* Example 34.
+ 	Accumulating and rendering statistics from event traces.
+ 	Graphs as container data structures
+============================================================*/
+SCHEMA Statistics
+ROOT A: (* ( a | b) *);
+ROOT B: (+ c +);
+
+GRAPH Stat{ TITLE("Total event count as graph for scope " $$scope);};
+
+ATTRIBUTES { number count;};
+
+COORDINATE $x: $$EVENT DO
+	WITHIN Stat{
+		Node$e: LAST ($x); /* creates new node with label $x if needed, 
+								or finds the existing one  */
+		Node$e.count +:= 1;
+		/* add more data to the node */
+		ADD Node$e  ARROW("in trace")  LAST("trace " trace_id);
+	};
+OD;
+
+GLOBAL 
+/* Render the accumulated statistics as Report.
+	The Stat graph is used as a data structure. */
+REPORT Total_event_statistics{ TITLE("Total event count as Report"); };
+
+	WITHIN Stat{
+		FOR Node$a DO
+			IF Node$a.count > 0 THEN
+			/* 	Nodes with “trace” labels have count attribute 0.
+			 Create and connect new node with the total count to each event node */
+				ADD Node$a ARROW("total count") NEW (Node$a.count);
+			/* graph loop works only with the initial graph contents, 
+				new nodes added within the loop body
+ 				don’t participate in the iterations. 
+                That prevents from infinite looping. */
+
+			/* Add to the Report as well. 
+            	Use the graph as a source of accumulated data.  */
+				SAY(Node$a " event count: " Node$a.count) 
+ 						=> Total_event_statistics;
+			FI;
+	OD; /* end FOR */
+	}; /* end WITHIN */
+
+	/* render statistics as a graph */
+	SHOW Stat;
+	/* show the Report */
+	SHOW Total_event_statistics;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp.txt
new file mode 100644
index 0000000..b800742
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example34_Graph_as_data_structure tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.tree
new file mode 100644
index 0000000000000000000000000000000000000000..90dd8676a6fc63852524cb4c48a4aac8b356c575
GIT binary patch
literal 8704
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.txt
new file mode 100644
index 0000000..fa6fd01
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example34_Graph_as_data_structure.txt
@@ -0,0 +1,11 @@
+generating traces for scope 1 
+completed A: 	3 traces (0 MARKed) 	5 events 
+		average 1.66667 ev/trace 	min 1 	max 2
+
+completed B: 	1 traces (0 MARKed) 	2 events 
+
+completed Statistics: 	3 traces (0 MARKed) 	14 events 
+		average 4.66667 ev/trace 	min 4 	max 5
+
+Elapsed time 0.000288 sec, Speed: 72916.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.cpp
new file mode 100644
index 0000000..4fcba83
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.cpp
@@ -0,0 +1,1150 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Finite_State_Diagram_with_path trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_73_Path;
+graph_object GRAPH_92_Diagram;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Start
+    , Event_S1
+    , Event_empty
+    , Event_a
+    , Event_b
+    , Event_S2
+    , Event_End
+    , Event_S3
+    , Event_S4
+       // composite events 
+    , Event_Start_to_S1
+    , Event_S1_to_S3
+    , Event_S1_to_S4
+    , Event_S2_to_S1
+    , Event_S2_to_End
+    , Event_S3_to_S3
+    , Event_S3_to_S4
+    , Event_S4_to_S2
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_35_36
+    , Event_SIMPLE_LIST_53_54
+    , Event_SIMPLE_LIST_101_102
+       // ADD operations 
+       // ROOT events 
+    , Event_S1_behavior
+    , Event_S2_behavior
+    , Event_S3_behavior
+    , Event_S4_behavior
+       // main schema event 
+    , Event_Finite_State_Diagram_with_path }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Start"
+     , "S1"
+     , "empty"
+     , "a"
+     , "b"
+     , "S2"
+     , "End"
+     , "S3"
+     , "S4"
+     , "Start_to_S1"
+     , "S1_to_S3"
+     , "S1_to_S4"
+     , "S2_to_S1"
+     , "S2_to_End"
+     , "S3_to_S3"
+     , "S3_to_S4"
+     , "S4_to_S2"
+     , "SIMPLE_LIST_35_36"
+     , "SIMPLE_LIST_53_54"
+     , "SIMPLE_LIST_101_102"
+     , "S1_behavior"
+     , "S2_behavior"
+     , "S3_behavior"
+     , "S4_behavior"
+     , "Finite_State_Diagram_with_path" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_35_36_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_35_36_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S2_to_S1_list;
+
+  int S2_behavior_source = Root_table[Event_S2_behavior];
+   // lists of shared events for  S2_behavior 
+  vector<int> S2_behavior_S2_to_S1_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S2_to_S1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S2_to_S1_list.begin();
+          s != S1_behavior_S2_to_S1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S2_to_S1_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S2_behavior_source ]){ 
+     if( Stack[i]->name == Event_S2_to_S1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S2_behavior_S2_to_S1_list.begin();
+          s != S2_behavior_S2_to_S1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S2_behavior_S2_to_S1_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S2_behavior_S2_to_S1_list.size();
+     if(S1_behavior_S2_to_S1_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S2_behavior_S2_to_S1_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S1_behavior_S2_to_S1_list[i], S2_behavior_S2_to_S1_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_35_36_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_53_54_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_53_54_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S3_behavior_source = Root_table[Event_S3_behavior];
+   // lists of shared events for  S3_behavior 
+  vector<int> S3_behavior_S1_to_S3_list;
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S1_to_S3_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S3_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S3 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S3_behavior_S1_to_S3_list.begin();
+          s != S3_behavior_S1_to_S3_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S3_behavior_S1_to_S3_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S3 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S1_to_S3_list.begin();
+          s != S1_behavior_S1_to_S3_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S1_to_S3_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S1_behavior_S1_to_S3_list.size();
+     if(S3_behavior_S1_to_S3_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S1_behavior_S1_to_S3_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S3_behavior_S1_to_S3_list[i], S1_behavior_S1_to_S3_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_53_54_ob class
+
+//---- 3 ---- 
+class SIMPLE_LIST_101_102_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_101_102_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S1_to_S4_list;
+
+  int S1_behavior_source = Root_table[Event_S1_behavior];
+   // lists of shared events for  S1_behavior 
+  vector<int> S1_behavior_S1_to_S4_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S1_to_S4_list.begin();
+          s != S4_behavior_S1_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S1_to_S4_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S1_behavior_source ]){ 
+     if( Stack[i]->name == Event_S1_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S1_behavior_S1_to_S4_list.begin();
+          s != S1_behavior_S1_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S1_behavior_S1_to_S4_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S1_behavior_S1_to_S4_list.size();
+     if(S4_behavior_S1_to_S4_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S1_behavior_S1_to_S4_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S1_to_S4_list[i], S1_behavior_S1_to_S4_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S4_to_S2_list;
+
+  int S2_behavior_source = Root_table[Event_S2_behavior];
+   // lists of shared events for  S2_behavior 
+  vector<int> S2_behavior_S4_to_S2_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S4_to_S2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S4_to_S2_list.begin();
+          s != S4_behavior_S4_to_S2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S4_to_S2_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S2_behavior_source ]){ 
+     if( Stack[i]->name == Event_S4_to_S2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S2_behavior_S4_to_S2_list.begin();
+          s != S2_behavior_S4_to_S2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S2_behavior_S4_to_S2_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S2_behavior_S4_to_S2_list.size();
+     if(S4_behavior_S4_to_S2_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S2_behavior_S4_to_S2_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S4_to_S2_list[i], S2_behavior_S4_to_S2_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int S4_behavior_source = Root_table[Event_S4_behavior];
+   // lists of shared events for  S4_behavior 
+  vector<int> S4_behavior_S3_to_S4_list;
+
+  int S3_behavior_source = Root_table[Event_S3_behavior];
+   // lists of shared events for  S3_behavior 
+  vector<int> S3_behavior_S3_to_S4_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + S4_behavior_source ]){ 
+     if( Stack[i]->name == Event_S3_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S4_behavior_S3_to_S4_list.begin();
+          s != S4_behavior_S3_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S4_behavior_S3_to_S4_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + S3_behavior_source ]){ 
+     if( Stack[i]->name == Event_S3_to_S4 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  S3_behavior_S3_to_S4_list.begin();
+          s != S3_behavior_S3_to_S4_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) S3_behavior_S3_to_S4_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = S3_behavior_S3_to_S4_list.size();
+     if(S4_behavior_S3_to_S4_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = S3_behavior_S3_to_S4_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(S4_behavior_S3_to_S4_list[i], S3_behavior_S3_to_S4_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+    { // Path title generation 
+     ostringstream convert; 
+     convert <<"Path for the event trace";
+     GRAPH_73_Path.title = convert.str();}
+    // CLEAR Path 
+     GRAPH_73_Path.clean();
+   // WITHIN Path 
+   int s1_76_node_var = -1; 
+   int s2_78_node_var = -1; 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int state1_variable; // thread variable
+  vector<int> state1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int symbol_variable; // thread variable
+  vector<int> symbol_variable_list; // list of coordinated events
+  int state2_variable; // thread variable
+  vector<int> state2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for state1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state1_variable = i; 
+      if( state1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Start)|| (Stack[i]->name == Event_S1)|| (Stack[i]->name == Event_S2)|| (Stack[i]->name == Event_S3)|| (Stack[i]->name == Event_S4)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state1_variable_list.begin(); s != state1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state1_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(state1_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state1_variable_list.size();
+  if(thread_length != state1_variable_list.size()) throw failed;
+
+  // preparing thread for symbol_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      symbol_variable = i; 
+      if( symbol_variable_list.size() == thread_length){
+         state1_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[symbol_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_a)|| (Stack[i]->name == Event_b)|| (Stack[i]->name == Event_empty)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = symbol_variable_list.begin(); s != symbol_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) symbol_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(symbol_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = symbol_variable_list.size();
+  if(thread_length != symbol_variable_list.size()) throw failed;
+
+  // preparing thread for state2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state2_variable = i; 
+      if( state2_variable_list.size() == thread_length){
+         state1_variable = 0; 
+         symbol_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[state2_variable_list.size()];
+         symbol_variable = symbol_variable_list[state2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_S1)|| (Stack[i]->name == Event_S2)|| (Stack[i]->name == Event_S3)|| (Stack[i]->name == Event_S4)|| (Stack[i]->name == Event_End)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state2_variable_list.begin(); s != state2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state2_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(state2_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state2_variable_list.size();
+  if(thread_length != state2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    state1_variable= state1_variable_list[i];
+    symbol_variable= symbol_variable_list[i];
+    state2_variable= state2_variable_list[i];
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state1_variable ]->name]; 
+    s1_76_node_var = GRAPH_73_Path.find_or_create_new_node(convert.str());}
+   {// NEW_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state2_variable ]->name]; 
+    s2_78_node_var = GRAPH_73_Path.create_new_node(convert.str());}
+  // add_arrow for GRAPH_73_Path 
+  { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ symbol_variable ]->name]; 
+     GRAPH_73_Path.add_arrow(s1_76_node_var,s2_78_node_var,convert.str());}
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    // SHOW Path 
+    graph_container.insert(pair<int, graph_object>( 1,GRAPH_73_Path));
+    { // Diagram title generation 
+     ostringstream convert; 
+     convert <<"State transition diagram";
+     GRAPH_92_Diagram.title = convert.str();}
+   // WITHIN Diagram 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int state1_variable; // thread variable
+  vector<int> state1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int symbol_variable; // thread variable
+  vector<int> symbol_variable_list; // list of coordinated events
+  int state2_variable; // thread variable
+  vector<int> state2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for state1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state1_variable = i; 
+      if( state1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Start)|| (Stack[i]->name == Event_S1)|| (Stack[i]->name == Event_S2)|| (Stack[i]->name == Event_S3)|| (Stack[i]->name == Event_S4)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state1_variable_list.begin(); s != state1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state1_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(state1_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state1_variable_list.size();
+  if(thread_length != state1_variable_list.size()) throw failed;
+
+  // preparing thread for symbol_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      symbol_variable = i; 
+      if( symbol_variable_list.size() == thread_length){
+         state1_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[symbol_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_a)|| (Stack[i]->name == Event_b)|| (Stack[i]->name == Event_empty)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = symbol_variable_list.begin(); s != symbol_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) symbol_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(symbol_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = symbol_variable_list.size();
+  if(thread_length != symbol_variable_list.size()) throw failed;
+
+  // preparing thread for state2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state2_variable = i; 
+      if( state2_variable_list.size() == thread_length){
+         state1_variable = 0; 
+         symbol_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[state2_variable_list.size()];
+         symbol_variable = symbol_variable_list[state2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_S1)|| (Stack[i]->name == Event_S2)|| (Stack[i]->name == Event_S3)|| (Stack[i]->name == Event_S4)|| (Stack[i]->name == Event_End)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state2_variable_list.begin(); s != state2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state2_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the SORT reshuffling 
+  topological_sort(state2_variable_list);
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state2_variable_list.size();
+  if(thread_length != state2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    state1_variable= state1_variable_list[i];
+    symbol_variable= symbol_variable_list[i];
+    state2_variable= state2_variable_list[i];
+  // add_arrow for GRAPH_92_Diagram 
+  int temp_2_1 ; { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state1_variable ]->name]; 
+     temp_2_1 = GRAPH_92_Diagram . find_or_create_new_node (convert.str());} 
+  int temp_3_2 ; { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state2_variable ]->name]; 
+     temp_3_2 = GRAPH_92_Diagram . find_or_create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ symbol_variable ]->name]; 
+     GRAPH_92_Diagram.add_arrow(temp_2_1,temp_3_2,convert.str());}
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_101_102_ob class
+
+//---- 4 ---- 
+class Alt_17_18 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_17_18 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+      element[ 1 ]=  new Atomic_producer(Event_b); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_17_18 
+
+//---- 5 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 6 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S2_to_S1); 
+      element[ 2 ]=  new Atomic_producer(Event_S1); 
+    } 
+};// end class Sq_3_4 
+
+//---- 7 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_3_4 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 8 ---- 
+class Alt_7_8 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_7_8 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_7_8 
+
+//---- 9 ---- 
+class Sq_9_10 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_9_10 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Start); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_Start_to_S1); 
+      element[ 2 ]=  new Atomic_producer(Event_S1); 
+      element[ 3 ]=  new Itr_5_6 ; 
+      element[ 4 ]=  new Alt_7_8 ; 
+    } 
+};// end class Sq_9_10 
+
+//---- 10 ---- 
+class Sq_21_22 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_21_22 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+      element[ 1 ]=  new Atomic_producer(Event_S2); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_S2_to_S1); 
+    } 
+};// end class Sq_21_22 
+
+//---- 11 ---- 
+class Itr_23_24 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_23_24 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_23_24 
+
+//---- 12 ---- 
+class Sq_25_26 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_25_26 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Itr_23_24 ; 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+      element[ 2 ]=  new Atomic_producer(Event_S2); 
+      element[ 3 ]=  new Composite_secondary_producer(Event_S2_to_End); 
+      element[ 4 ]=  new Atomic_producer(Event_End); 
+    } 
+};// end class Sq_25_26 
+
+//---- 13 ---- 
+class Sq_37_38 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_37_38 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S3_to_S3); 
+      element[ 1 ]=  new Atomic_producer(Event_S3); 
+    } 
+};// end class Sq_37_38 
+
+//---- 14 ---- 
+class Itr_39_40 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_39_40 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_37_38 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_39_40 
+
+//---- 15 ---- 
+class Sq_41_42 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_41_42 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S3); 
+      element[ 1 ]=  new Atomic_producer(Event_S3); 
+      element[ 2 ]=  new Itr_39_40 ; 
+      element[ 3 ]=  new Composite_secondary_producer(Event_S3_to_S4); 
+    } 
+};// end class Sq_41_42 
+
+//---- 16 ---- 
+class Itr_43_44 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_43_44 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_41_42 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_43_44 
+
+//---- 17 ---- 
+class Alt_55_56 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_55_56 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_S1_to_S4); 
+      element[ 1 ]=  new Composite_secondary_producer(Event_S3_to_S4); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_55_56 
+
+//---- 18 ---- 
+class Sq_57_58 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_57_58 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Alt_55_56 ; 
+      element[ 1 ]=  new Atomic_producer(Event_S4); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_S4_to_S2); 
+    } 
+};// end class Sq_57_58 
+
+//---- 19 ---- 
+class Itr_59_60 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_59_60 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_57_58 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_59_60 
+
+//---- 20 ---- 
+class Comp_13_14 : public Composite_producer { 
+public: // constructor 
+    Comp_13_14 (): Composite_producer(Event_Start_to_S1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_empty); 
+    } 
+};// end class Comp_13_14 
+
+//---- 21 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_S1_to_S3){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_15_16 
+
+//---- 22 ---- 
+class Comp_19_20 : public Composite_producer { 
+public: // constructor 
+    Comp_19_20 (): Composite_producer(Event_S1_to_S4){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_17_18 ; 
+    } 
+};// end class Comp_19_20 
+
+//---- 23 ---- 
+class Comp_29_30 : public Composite_producer { 
+public: // constructor 
+    Comp_29_30 (): Composite_producer(Event_S2_to_S1){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_b); 
+    } 
+};// end class Comp_29_30 
+
+//---- 24 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_S2_to_End){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_empty); 
+    } 
+};// end class Comp_31_32 
+
+//---- 25 ---- 
+class Comp_47_48 : public Composite_producer { 
+public: // constructor 
+    Comp_47_48 (): Composite_producer(Event_S3_to_S3){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_47_48 
+
+//---- 26 ---- 
+class Comp_49_50 : public Composite_producer { 
+public: // constructor 
+    Comp_49_50 (): Composite_producer(Event_S3_to_S4){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_b); 
+    } 
+};// end class Comp_49_50 
+
+//---- 27 ---- 
+class Comp_63_64 : public Composite_producer { 
+public: // constructor 
+    Comp_63_64 (): Composite_producer(Event_S4_to_S2){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Comp_63_64 
+
+//---- 28 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_S1_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 29 ---- 
+class Comp_27_28 : public Composite_producer { 
+public: // constructor 
+    Comp_27_28 (): Composite_producer(Event_S2_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_25_26 ; 
+    } 
+};// end class Comp_27_28 
+
+//---- 30 ---- 
+class Comp_45_46 : public Composite_producer { 
+public: // constructor 
+    Comp_45_46 (): Composite_producer(Event_S3_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_43_44 ; 
+    } 
+};// end class Comp_45_46 
+
+//---- 31 ---- 
+class Comp_61_62 : public Composite_producer { 
+public: // constructor 
+    Comp_61_62 (): Composite_producer(Event_S4_behavior){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_59_60 ; 
+    } 
+};// end class Comp_61_62 
+
+//---- 32 ---- 
+class SCHEMA_Finite_State_Diagram_with_path: public Composite_producer {
+public: // constructor 
+    SCHEMA_Finite_State_Diagram_with_path(): Composite_producer(Event_Finite_State_Diagram_with_path){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_S1_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_S2_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_35_36_ob(Event_SIMPLE_LIST_35_36);
+      element[3]= new Composite_secondary_producer(Event_S3_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_53_54_ob(Event_SIMPLE_LIST_53_54);
+      element[5]= new Composite_secondary_producer(Event_S4_behavior);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_101_102_ob(Event_SIMPLE_LIST_101_102);
+    } 
+};// end class SCHEMA_Finite_State_Diagram_with_path
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    // SHOW Diagram 
+    graph_container.insert(pair<int, graph_object>( 4,GRAPH_92_Diagram));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example35_Finite_State_Diagram.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_13_14 temp_33; temp_33.harvest();
+    Comp_15_16 temp_34; temp_34.harvest();
+    Comp_19_20 temp_35; temp_35.harvest();
+    Comp_29_30 temp_36; temp_36.harvest();
+    Comp_31_32 temp_37; temp_37.harvest();
+    Comp_47_48 temp_38; temp_38.harvest();
+    Comp_49_50 temp_39; temp_39.harvest();
+    Comp_63_64 temp_40; temp_40.harvest();
+   // harvesting traces for ROOT events 
+    Comp_11_12 temp_41; temp_41.harvest();
+    Comp_27_28 temp_42; temp_42.harvest();
+    Comp_45_46 temp_43; temp_43.harvest();
+    Comp_61_62 temp_44; temp_44.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Finite_State_Diagram_with_path temp_45; temp_45.harvest();
+   temp_45.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Finite_State_Diagram_with_path"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.mp
new file mode 100644
index 0000000..ff0ca81
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.mp
@@ -0,0 +1,97 @@
+/* Example 35.
+
+    Adding path and state transition diagrams to 
+	the Finite Automaton behavior model.
+    
+    run for scope 2
+==========================================================*/
+SCHEMA Finite_State_Diagram_with_path
+
+ROOT S1_behavior:  	
+			Start 	Start_to_S1 	S1 
+			(* (S1_to_S3 | S1_to_S4) 	S2_to_S1 	S1 *) 
+			(S1_to_S3 | S1_to_S4);
+Start_to_S1: 	empty;
+S1_to_S3: 		a;
+S1_to_S4: 		(a | b);
+
+ROOT S2_behavior:  
+			(* S4_to_S2 	S2 	S2_to_S1  *) 
+			S4_to_S2 S2 	
+			S2_to_End End;
+S2_to_S1: 		b;
+S2_to_End: 		empty;
+
+S1_behavior, S2_behavior SHARE ALL S2_to_S1; 
+
+ROOT S3_behavior: 
+			(* 	S1_to_S3 S3 
+    			(* S3_to_S3 S3 *)
+    			S3_to_S4 				*);
+S3_to_S3: 		a;
+S3_to_S4: 		b;
+
+S3_behavior, S1_behavior SHARE ALL S1_to_S3;
+
+ROOT S4_behavior: 
+			(* 	(S1_to_S4 | S3_to_S4) 	S4 
+    			S4_to_S2 						*);
+S4_to_S2: 		a;
+
+S4_behavior, S1_behavior SHARE ALL S1_to_S4;
+S4_behavior, S2_behavior SHARE ALL S4_to_S2;
+S4_behavior, S3_behavior SHARE ALL S3_to_S4;
+
+GRAPH Path { TITLE("Path for the event trace"); };
+/* The following coordination extracts all triples State-Symbol-State 
+	from the trace and accumulates corresponding nodes/transitions 
+    in the Path graph. */
+
+CLEAR Path;  /* Path graph is cleared before a new event trace derivation begins. */
+
+WITHIN Path{
+	COORDINATE 
+	/* SORT (plain synchronous coordination) performs topological sort 
+    	on the selected event set with respect to the transitive closure of 
+        PRECEDES (BEFORE relation), and the coordination will follow this ordering. 
+        If A BEFORE B holds for events A and B, event A will appear in the sorted 
+        sequence before B. This way pairs of states and transitions between them 
+        are synchronized. */
+		<SORT> $state1:	(Start 	| S1 	| S2 	| S3 	| S4),
+		<SORT> $symbol:	(a 		| b 	| empty),
+ 		<SORT> $state2:	(S1 	| S2 	| S3 	| S4 	| End)
+
+	DO
+  		Node$s1: LAST ($state1); 
+	/* Assigns to the node variable Node$s1 the last instance of node 
+    	with the event name stored in $state1 in this graph, or creates a new node, 
+        if such instance does not yet exist */ 	 
+ 		Node$s2: NEW ($state2);
+	/* Creates a new instance of node with name $state2.  As a result, 
+    	nodes with the same label (representing the same state in the diagram) 
+        may appear repeatedly in the Path graph.  */
+		ADD Node$s1 ARROW($symbol) Node$s2;
+	OD;
+
+	/* show Path graph for each event trace */
+	SHOW Path;
+}; /* end WITHIN Path */
+ 
+GRAPH Diagram { TITLE("State transition diagram"); };
+
+WITHIN Diagram{
+	/* The following coordination extracts all triples State-Symbol-State from 
+    	the trace and accumulates corresponding nodes/transitions in the graph */
+	COORDINATE 
+		<SORT> $state1:	(Start 	| S1 	| S2 	| S3 	| S4),
+		<SORT> $symbol: (a 		| b 	| empty),
+   		<SORT> $state2:	(S1 	| S2 	| S3 	| S4 	| End)
+	DO
+		ADD LAST ($state1) ARROW($symbol) LAST ($state2);
+		/* this time nodes with the same label will be unique */
+	OD;
+}; /* end WITHIN Diagram */
+
+GLOBAL
+/* After all valid traces have been derived, show the accumulated diagram */
+SHOW Diagram;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp.txt
new file mode 100644
index 0000000..ec42749
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example35_Finite_State_Diagram tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.tree
new file mode 100644
index 0000000000000000000000000000000000000000..3c680a728496e9175dfc662ad64f4ff3a3b1da58
GIT binary patch
literal 18944
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.txt
new file mode 100644
index 0000000..f692e29
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example35_Finite_State_Diagram.txt
@@ -0,0 +1,35 @@
+generating traces for scope 1 
+completed Start_to_S1: 	1 traces (0 MARKed) 	2 events 
+
+completed S1_to_S3: 	1 traces (0 MARKed) 	2 events 
+
+completed S1_to_S4: 	2 traces (0 MARKed) 	4 events 
+		average 2 ev/trace 	min 2 	max 2
+
+completed S2_to_S1: 	1 traces (0 MARKed) 	2 events 
+
+completed S2_to_End: 	1 traces (0 MARKed) 	2 events 
+
+completed S3_to_S3: 	1 traces (0 MARKed) 	2 events 
+
+completed S3_to_S4: 	1 traces (0 MARKed) 	2 events 
+
+completed S4_to_S2: 	1 traces (0 MARKed) 	2 events 
+
+completed S1_behavior: 	12 traces (0 MARKed) 	129 events 
+		average 10.75 ev/trace 	min 7 	max 12
+
+completed S2_behavior: 	2 traces (0 MARKed) 	19 events 
+		average 9.5 ev/trace 	min 7 	max 12
+
+completed S3_behavior: 	3 traces (0 MARKed) 	16 events 
+		average 5.33333 ev/trace 	min 1 	max 9
+
+completed S4_behavior: 	4 traces (0 MARKed) 	19 events 
+		average 4.75 ev/trace 	min 1 	max 6
+
+completed Finite_State_Diagram_with_path: 	4 traces (0 MARKed) 	101 events 
+		average 25.25 ev/trace 	min 22 	max 30
+
+Elapsed time 0.136319 sec, Speed: 2215.39 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.cpp
new file mode 100644
index 0000000..a1deeab
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.cpp
@@ -0,0 +1,1168 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA ATM_withdrawal_with_Statechart_view trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_77_Diagram;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_insert_card
+    , Event_identification_succeeds
+    , Event_request_withdrawal
+    , Event_get_money
+    , Event_not_sufficient_funds
+    , Event_identification_fails
+    , Event_retrieve_card
+    , Event_Idle
+    , Event_read_card
+    , Event_validate_id
+    , Event_id_successful
+    , Event_check_balance
+    , Event_sufficient_balance
+    , Event_dispense_money
+    , Event_unsufficient_balance
+    , Event_id_failed
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_86_87
+       // ADD operations 
+       // ROOT events 
+    , Event_Customer
+    , Event_ATM_system
+    , Event_Data_Base
+       // main schema event 
+    , Event_ATM_withdrawal_with_Statechart_view }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "insert_card"
+     , "identification_succeeds"
+     , "request_withdrawal"
+     , "get_money"
+     , "not_sufficient_funds"
+     , "identification_fails"
+     , "retrieve_card"
+     , "Idle"
+     , "read_card"
+     , "validate_id"
+     , "id_successful"
+     , "check_balance"
+     , "sufficient_balance"
+     , "dispense_money"
+     , "unsufficient_balance"
+     , "id_failed"
+     , "SIMPLE_LIST_86_87"
+     , "Customer"
+     , "ATM_system"
+     , "Data_Base"
+     , "ATM_withdrawal_with_Statechart_view" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_86_87_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_86_87_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Data_Base_source = Root_table[Event_Data_Base];
+   // lists of shared events for  Data_Base 
+  vector<int> Data_Base_validate_id_list;
+  vector<int> Data_Base_check_balance_list;
+
+  int ATM_system_source = Root_table[Event_ATM_system];
+   // lists of shared events for  ATM_system 
+  vector<int> ATM_system_validate_id_list;
+  vector<int> ATM_system_check_balance_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Data_Base_source ]){ 
+     if( Stack[i]->name == Event_validate_id ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Data_Base_validate_id_list.begin();
+          s != Data_Base_validate_id_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Data_Base_validate_id_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_check_balance ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Data_Base_check_balance_list.begin();
+          s != Data_Base_check_balance_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Data_Base_check_balance_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + ATM_system_source ]){ 
+     if( Stack[i]->name == Event_validate_id ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  ATM_system_validate_id_list.begin();
+          s != ATM_system_validate_id_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) ATM_system_validate_id_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_check_balance ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  ATM_system_check_balance_list.begin();
+          s != ATM_system_check_balance_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) ATM_system_check_balance_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = ATM_system_validate_id_list.size();
+     if(Data_Base_validate_id_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = ATM_system_check_balance_list.size();
+     if(Data_Base_check_balance_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = ATM_system_validate_id_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Data_Base_validate_id_list[i], ATM_system_validate_id_list[i]);
+   } 
+   len_to_compare = ATM_system_check_balance_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Data_Base_check_balance_list[i], ATM_system_check_balance_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_insert_card))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_read_card))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_request_withdrawal))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_check_balance))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_identification_succeeds))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_id_successful))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_get_money))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_dispense_money))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_not_sufficient_funds))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_unsufficient_balance))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Customer_source = Root_table[Event_Customer]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  ATM_system_source = Root_table[Event_ATM_system]
+; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Customer_source ]){ 
+       if( (  (Stack[i]->name == Event_identification_fails))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  ATM_system_source ]){ 
+       if( (  (Stack[i]->name == Event_id_failed))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(x_variable,y_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // Diagram title generation 
+     ostringstream convert; 
+     convert <<"ATM state transition diagram";
+     GRAPH_77_Diagram.title = convert.str();}
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int state1_variable; // thread variable
+  vector<int> state1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int user_variable; // thread variable
+  vector<int> user_variable_list; // list of coordinated events
+  int state2_variable; // thread variable
+  vector<int> state2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for state1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state1_variable = i; 
+      if( state1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Idle)|| (Stack[i]->name == Event_id_successful)|| (Stack[i]->name == Event_id_failed)|| (Stack[i]->name == Event_sufficient_balance)|| (Stack[i]->name == Event_unsufficient_balance)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state1_variable_list.begin(); s != state1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state1_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the CUT_END 1 reshuffling 
+  if(state1_variable_list.size() >=1)
+    state1_variable_list.erase(state1_variable_list.end() - 1, state1_variable_list.end());
+  else throw failed; 
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state1_variable_list.size();
+  if(thread_length != state1_variable_list.size()) throw failed;
+
+  // preparing thread for user_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      user_variable = i; 
+      if( user_variable_list.size() == thread_length){
+         state1_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[user_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_insert_card)|| (Stack[i]->name == Event_request_withdrawal)|| (Stack[i]->name == Event_retrieve_card)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = user_variable_list.begin(); s != user_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) user_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source user_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = user_variable_list.size();
+  if(thread_length != user_variable_list.size()) throw failed;
+
+  // preparing thread for state2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      state2_variable = i; 
+      if( state2_variable_list.size() == thread_length){
+         state1_variable = 0; 
+         user_variable = 0; } 
+      else{ 
+         state1_variable = state1_variable_list[state2_variable_list.size()];
+         user_variable = user_variable_list[state2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Idle)|| (Stack[i]->name == Event_id_successful)|| (Stack[i]->name == Event_id_failed)|| (Stack[i]->name == Event_sufficient_balance)|| (Stack[i]->name == Event_unsufficient_balance)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = state2_variable_list.begin(); s != state2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) state2_variable_list.push_back(i);
+       } 
+     } }; 
+
+  // do the CUT_FRONT 1 reshuffling 
+  if(state2_variable_list.size() >=1)
+    state2_variable_list.erase(state2_variable_list.begin(),state2_variable_list.begin() + 1);
+  else throw failed; 
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = state2_variable_list.size();
+  if(thread_length != state2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    state1_variable= state1_variable_list[i];
+    user_variable= user_variable_list[i];
+    state2_variable= state2_variable_list[i];
+   // WITHIN Diagram 
+  // add_arrow for GRAPH_77_Diagram 
+  int temp_1_1 ; { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state1_variable ]->name]; 
+     temp_1_1 = GRAPH_77_Diagram . find_or_create_new_node (convert.str());} 
+  int temp_2_2 ; { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ state2_variable ]->name]; 
+     temp_2_2 = GRAPH_77_Diagram . find_or_create_new_node (convert.str());} 
+  { 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ user_variable ]->name]; 
+     GRAPH_77_Diagram.add_arrow(temp_1_1,temp_2_2,convert.str());}
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_86_87_ob class
+
+//---- 2 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_get_money); 
+      element[ 1 ]=  new Atomic_producer(Event_not_sufficient_funds); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 3 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_identification_succeeds); 
+      element[ 1 ]=  new Atomic_producer(Event_request_withdrawal); 
+      element[ 2 ]=  new Alt_1_2 ; 
+    } 
+};// end class Sq_3_4 
+
+//---- 4 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_3_4 ; 
+      element[ 1 ]=  new Atomic_producer(Event_identification_fails); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 5 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_insert_card); 
+      element[ 1 ]=  new Alt_5_6 ; 
+      element[ 2 ]=  new Atomic_producer(Event_retrieve_card); 
+    } 
+};// end class Sq_7_8 
+
+//---- 6 ---- 
+class Ct_90_91 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_90_91 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+    } 
+};// end class Ct_90_91 
+
+//---- 7 ---- 
+class Ct_92_93 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_92_93 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      element[ 2 ]=  new Sq_7_8 ; 
+    } 
+};// end class Ct_92_93 
+
+//---- 8 ---- 
+class Itr_9_10 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_9_10 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_7_8 ; 
+      element[ 2 ]=  new Ct_90_91 ; 
+      element[ 3 ]=  new Ct_92_93 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_9_10 
+
+//---- 9 ---- 
+class Sq_13_14 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_13_14 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_sufficient_balance); 
+      element[ 1 ]=  new Atomic_producer(Event_dispense_money); 
+    } 
+};// end class Sq_13_14 
+
+//---- 10 ---- 
+class Alt_15_16 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_15_16 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_13_14 ; 
+      element[ 1 ]=  new Atomic_producer(Event_unsufficient_balance); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_15_16 
+
+//---- 11 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_id_successful); 
+      element[ 1 ]=  new Atomic_producer(Event_check_balance); 
+      element[ 2 ]=  new Alt_15_16 ; 
+    } 
+};// end class Sq_17_18 
+
+//---- 12 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_17_18 ; 
+      element[ 1 ]=  new Atomic_producer(Event_id_failed); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 13 ---- 
+class Sq_21_22 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_21_22 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Idle); 
+      element[ 1 ]=  new Atomic_producer(Event_read_card); 
+      element[ 2 ]=  new Atomic_producer(Event_validate_id); 
+      element[ 3 ]=  new Alt_19_20 ; 
+    } 
+};// end class Sq_21_22 
+
+//---- 14 ---- 
+class Ct_94_95 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_94_95 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_21_22 ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+    } 
+};// end class Ct_94_95 
+
+//---- 15 ---- 
+class Ct_96_97 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_96_97 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_21_22 ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      element[ 2 ]=  new Sq_21_22 ; 
+    } 
+};// end class Ct_96_97 
+
+//---- 16 ---- 
+class Itr_23_24 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_23_24 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_21_22 ; 
+      element[ 2 ]=  new Ct_94_95 ; 
+      element[ 3 ]=  new Ct_96_97 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_23_24 
+
+//---- 17 ---- 
+class Sq_25_26 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_25_26 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_23_24 ; 
+      element[ 1 ]=  new Atomic_producer(Event_Idle); 
+    } 
+};// end class Sq_25_26 
+
+//---- 18 ---- 
+class Opt_29_30 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_29_30 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_check_balance); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_29_30 
+
+//---- 19 ---- 
+class Sq_31_32 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_31_32 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_validate_id); 
+      element[ 1 ]=  new Opt_29_30 ; 
+    } 
+};// end class Sq_31_32 
+
+//---- 20 ---- 
+class Ct_98_99 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_98_99 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_31_32 ; 
+      element[ 1 ]=  new Sq_31_32 ; 
+    } 
+};// end class Ct_98_99 
+
+//---- 21 ---- 
+class Ct_100_101 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_100_101 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_31_32 ; 
+      element[ 1 ]=  new Sq_31_32 ; 
+      element[ 2 ]=  new Sq_31_32 ; 
+    } 
+};// end class Ct_100_101 
+
+//---- 22 ---- 
+class Itr_33_34 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_33_34 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_31_32 ; 
+      element[ 2 ]=  new Ct_98_99 ; 
+      element[ 3 ]=  new Ct_100_101 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_33_34 
+
+//---- 23 ---- 
+class Comp_11_12 : public Composite_producer { 
+public: // constructor 
+    Comp_11_12 (): Composite_producer(Event_Customer){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_9_10 ; 
+    } 
+};// end class Comp_11_12 
+
+//---- 24 ---- 
+class Comp_27_28 : public Composite_producer { 
+public: // constructor 
+    Comp_27_28 (): Composite_producer(Event_ATM_system){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_25_26 ; 
+    } 
+};// end class Comp_27_28 
+
+//---- 25 ---- 
+class Comp_35_36 : public Composite_producer { 
+public: // constructor 
+    Comp_35_36 (): Composite_producer(Event_Data_Base){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_33_34 ; 
+    } 
+};// end class Comp_35_36 
+
+//---- 26 ---- 
+class SCHEMA_ATM_withdrawal_with_Statechart_view: public Composite_producer {
+public: // constructor 
+    SCHEMA_ATM_withdrawal_with_Statechart_view(): Composite_producer(Event_ATM_withdrawal_with_Statechart_view){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Customer);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_ATM_system);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Data_Base);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_86_87_ob(Event_SIMPLE_LIST_86_87);
+    } 
+};// end class SCHEMA_ATM_withdrawal_with_Statechart_view
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    // SHOW Diagram 
+    graph_container.insert(pair<int, graph_object>( 3,GRAPH_77_Diagram));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example36_Statechart.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_11_12 temp_27; temp_27.harvest();
+    Comp_27_28 temp_28; temp_28.harvest();
+    Comp_35_36 temp_29; temp_29.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_ATM_withdrawal_with_Statechart_view temp_30; temp_30.harvest();
+   temp_30.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"ATM_withdrawal_with_Statechart_view"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.mp
new file mode 100644
index 0000000..f41f30f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.mp
@@ -0,0 +1,83 @@
+/* Example 36.
+
+	Extracting Statechart view from MP model.
+    
+    run for scope 1 and up
+==========================================================*/
+SCHEMA ATM_withdrawal_with_Statechart_view
+
+ROOT Customer: (* 	insert_card  
+		    		(	identification_succeeds 
+			 			request_withdrawal 
+			 			(get_money | not_sufficient_funds) 	|
+                        
+			 			identification_fails 	    		) 
+    				retrieve_card
+				*);
+				
+ROOT ATM_system: (* Idle
+    				read_card  	
+		    		validate_id 
+		    		( 	id_successful 
+		       			check_balance 
+		       			( 	sufficient_balance 	
+			    			dispense_money   	 |    
+			    			unsufficient_balance )  | 
+                        
+		        		id_failed  					)   	
+		 		*)
+				Idle;
+	
+ROOT Data_Base: (*  validate_id  [ check_balance ] *);
+
+/* Interactions */
+Data_Base, ATM_system SHARE ALL validate_id, check_balance;
+
+COORDINATE 	$x: insert_card	FROM Customer,  
+			$y: read_card  	FROM ATM_system 
+DO 	ADD $x PRECEDES $y; OD;
+		
+COORDINATE 	$x: request_withdrawal FROM Customer,  
+			$y: check_balance      FROM ATM_system
+DO  ADD $x PRECEDES $y; OD;
+		
+COORDINATE 	$x: identification_succeeds  FROM Customer, 
+			$y: id_successful   	    FROM ATM_system
+DO  ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: get_money        FROM Customer,  
+			$y: dispense_money   FROM ATM_system
+DO  ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: not_sufficient_funds  FROM Customer, 
+			$y: unsufficient_balance  FROM ATM_system
+DO  ADD $y PRECEDES $x; OD;
+	
+COORDINATE 	$x: identification_fails   	FROM Customer, 
+			$y: id_failed				FROM ATM_system
+DO  ADD $y PRECEDES $x; OD;
+
+GRAPH Diagram{ TITLE("ATM state transition diagram"); };
+
+/*===================================== 
+	Building a graph proceeds here 
+=======================================*/
+COORDINATE 
+	<CUT_END> $state1:  /* these are ATM system’s states */
+			(	Idle | id_successful 	| id_failed |
+ 				sufficient_balance 		| unsufficient_balance),
+
+	$user: /* these are User’s inputs that trigger ATM state transitions */
+     		(insert_card | request_withdrawal | retrieve_card),
+
+	<CUT_FRONT> $state2: /* these are ATM system’s states */ 
+			( 	Idle | id_successful | id_failed | 
+  				sufficient_balance | unsufficient_balance) 
+	DO
+		WITHIN Diagram{
+ 			ADD LAST ($state1) ARROW($user) LAST ($state2); };
+	OD;
+
+GLOBAL
+
+SHOW Diagram;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp.txt
new file mode 100644
index 0000000..afef2c5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example36_Statechart tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.tree
new file mode 100644
index 0000000000000000000000000000000000000000..575bf4212f989b9a8b84ae9621ef561353f844b6
GIT binary patch
literal 16384
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.txt
new file mode 100644
index 0000000..ad36dea
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example36_Statechart.txt
@@ -0,0 +1,15 @@
+generating traces for scope 3 
+completed Customer: 	40 traces (0 MARKed) 	482 events 
+		average 12.05 ev/trace 	min 1 	max 16
+
+completed ATM_system: 	40 traces (0 MARKed) 	658 events 
+		average 16.45 ev/trace 	min 2 	max 23
+
+completed Data_Base: 	15 traces (0 MARKed) 	66 events 
+		average 4.4 ev/trace 	min 1 	max 7
+
+completed ATM_withdrawal_with_Statechart_view: 	40 traces (0 MARKed) 	1390 events 
+		average 34.75 ev/trace 	min 5 	max 47
+
+Elapsed time 18.2951 sec, Speed: 141.896 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.cpp
new file mode 100644
index 0000000..50d477b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.cpp
@@ -0,0 +1,523 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA unreliable_message_flow trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > trace_unique_id_number_attribute;
+       map<int,  float > summary_probability_number_attribute;
+       map<int,  float > count_number_attribute;
+//-- node attributes -- 
+       map<int,  float > NODE_trace_unique_id_number_attribute;
+//-- GLOBAL attributes -- 
+       float GLOBAL_summary_probability_number_attribute;
+       float GLOBAL_count_number_attribute;
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( trace_unique_id_number_attribute[event1] != trace_unique_id_number_attribute[event2]) 
+    return false; 
+  if( summary_probability_number_attribute[event1] != summary_probability_number_attribute[event2]) 
+    return false; 
+  if( count_number_attribute[event1] != count_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    trace_unique_id_number_attribute.clear();
+    summary_probability_number_attribute.clear();
+    count_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!trace_unique_id_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("trace_unique_id",trace_unique_id_number_attribute));
+  if(!summary_probability_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("summary_probability",summary_probability_number_attribute));
+  if(!count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("count",count_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "trace_unique_id"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         trace_unique_id_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "summary_probability"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         summary_probability_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_21_good_traces;
+report_object REPORT_41_R;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_send
+    , Event_receive
+    , Event_does_not_receive
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+    , Event_SIMPLE_LIST_37_38
+       // ADD operations 
+       // ROOT events 
+    , Event_Sender
+    , Event_Receiver
+       // main schema event 
+    , Event_unreliable_message_flow }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "send"
+     , "receive"
+     , "does_not_receive"
+     , "SIMPLE_LIST_17_18"
+     , "SIMPLE_LIST_37_38"
+     , "Sender"
+     , "Receiver"
+     , "unreliable_message_flow" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_22(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_receive){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_23(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_send){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 3 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  Sender_source = Root_table[Event_Sender]; // source of coordination 
+  int y_variable; // thread variable
+  vector<int> y_variable_list; // list of coordinated events
+  int  Receiver_source = Root_table[Event_Receiver]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Sender_source ]){ 
+       if( (  (Stack[i]->name == Event_send))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // preparing thread for y_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      y_variable = i; 
+      if( y_variable_list.size() == thread_length){
+         x_variable = 0; } 
+      else{ 
+         x_variable = x_variable_list[y_variable_list.size()];}; 
+      if(in_matrix[i * len +  Receiver_source ]){ 
+       if( (  (Stack[i]->name == Event_receive)|| (Stack[i]->name == Event_does_not_receive)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = y_variable_list.begin(); s != y_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) y_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source y_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = y_variable_list.size();
+  if(thread_length != y_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    y_variable= y_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(y_variable,x_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_37_38_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_37_38_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    { // good_traces title generation 
+     ostringstream convert; 
+     convert <<" ";
+     GRAPH_21_good_traces.title = convert.str();}
+   if( ( (special_function_22(current_host, Root_table[Event_unreliable_message_flow])
+/ (float)special_function_23(current_host, Root_table[Event_unreliable_message_flow])
+) > 7.500000E-01)){ 
+   // WITHIN good_traces 
+   int x_24_node_var = -1; 
+   {// NEW_NODE 
+     ostringstream convert; 
+     convert << 
+       trace_id_attribute ; 
+    x_24_node_var = GRAPH_21_good_traces.create_new_node(convert.str());}
+   // attribute trace_unique_id assignment 
+    NODE_trace_unique_id_number_attribute[x_24_node_var]=
+       trace_id_attribute ; 
+   Mark = 'M'; // MARK
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_37_38_ob class
+
+//---- 5 ---- 
+class Alt_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_receive); 
+      element[ 1 ]=  new Atomic_producer(Event_does_not_receive); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  8.000000E-01; 
+      alternative_probability[ 1 ]=  2.000000E-01; 
+    } 
+};// end class Alt_5_6 
+
+//---- 6 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_Sender){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_send); 
+    } 
+};// end class Comp_3_4 
+
+//---- 7 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Receiver){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_5_6 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 8 ---- 
+class SCHEMA_unreliable_message_flow: public Composite_producer {
+public: // constructor 
+    SCHEMA_unreliable_message_flow(): Composite_producer(Event_unreliable_message_flow){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Sender);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Receiver);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18);
+      element[3]= new SIMPLE_LIST_37_38_ob(Event_SIMPLE_LIST_37_38);
+    } 
+};// end class SCHEMA_unreliable_message_flow
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    { // R title generation 
+     ostringstream convert; 
+     convert <<"Scope ";
+     convert << 1 ; 
+     REPORT_41_R.title = convert.str();}
+   // WITHIN good_traces 
+  // loop_over_graph for GRAPH_21_good_traces 
+  { // loop over graph GRAPH_21_good_traces 
+    int a_42_node_var ; 
+    int end_limit_1 = GRAPH_21_good_traces .nodes.size(); 
+    for(int temp = 0; temp < end_limit_1 ; temp++){ 
+     a_42_node_var = temp; 
+   // attribute summary_probability assignment 
+    GLOBAL_summary_probability_number_attribute+=get_trace_probability(m, (int) 
+       NODE_trace_unique_id_number_attribute[a_42_node_var] ) ; 
+   // attribute count assignment 
+    GLOBAL_count_number_attribute+=1 ; 
+   } } // end GRAPH_21_good_traces loop 
+    { // increment report 
+     ostringstream convert; 
+     convert <<"Total ";
+     convert << total_segments ; 
+     convert <<" traces";
+     REPORT_41_R.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"In ";
+     convert << 
+       GLOBAL_count_number_attribute ; 
+     convert <<" of traces at least 75% of sent messages have been received";
+     REPORT_41_R.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"At the given scope probability for at least 75% messages to pass through is ";
+     convert << 
+       GLOBAL_summary_probability_number_attribute ; 
+     REPORT_41_R.report_contents.push_back(convert.str());}
+    // SHOW R 
+    report_container.insert(pair<int, report_object>( 2,REPORT_41_R));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+   JSON<<",{\"SAY\":[";
+   string c = "\""; 
+   for(vector<string>::iterator p2 = global_SAY_list_999999.begin(); 
+       p2 != global_SAY_list_999999.end(); p2++){ 
+     JSON<<c<<*p2<<"\""; c = ",\"";} 
+   JSON<<"]}"; 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example37_GLOBAL_query.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_9; temp_9.harvest();
+    Comp_9_10 temp_10; temp_10.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_unreliable_message_flow temp_11; temp_11.harvest();
+   temp_11.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"unreliable_message_flow"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.mp
new file mode 100644
index 0000000..d6f37e1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.mp
@@ -0,0 +1,61 @@
+/* Example 37 GLOBAL query	
+
+Unreliable message flow.
+Assuming that probability for a message to get lost is 0.2,
+find probability of a trace with more than 75% successfully received messages.
+
+Since we are interested only in traces with at least one 'send' event,
+the (+ ... +) iteration is used.
+
+This example is small enough to try scopes larger than 5. 
+That can be done using explicit iteration limit (running for instance, 
+for scope 1), like:
+
+ROOT 	Sender: 	(+<1..7> send +);
+ROOT 	Receiver: 	(+<1..7> (receive |<<0.2>> does_not_receive) +);
+
+	Run for scopes 1 and up.
+*/
+SCHEMA unreliable_message_flow
+
+ROOT 	Sender: 	(+ send +);
+ROOT 	Receiver: 	(+ (receive |<<0.2>> does_not_receive) +);
+
+COORDINATE 	$x: send 							FROM Sender, 
+			$y: (receive | does_not_receive)	FROM Receiver 
+	DO 	ADD $x PRECEDES $y; OD;
+
+ATTRIBUTES {number 	trace_unique_id, 
+					summary_probability,
+    				count; };
+
+GRAPH good_traces{ }; /* To accumulate data about traces of interest */
+
+IF #receive / #send > 0.75 THEN 
+	WITHIN good_traces {
+		Node$x: NEW(trace_id);
+		Node$x.trace_unique_id := trace_id; };
+    MARK; /* MARK this trace */
+FI;
+
+GLOBAL
+REPORT R{TITLE("Scope " $$scope);};
+
+WITHIN good_traces{
+	FOR Node$a 	DO
+    /* sum up probabilities of traces stored in the 'good_traces'.
+    	Please notice that trace's probability can be estimated only 
+        after all valid trace derivation has been completed, 
+        i.e. should be postponed to the GLOBAL section, 
+        using the #$$TP( ) function. */
+		summary_probability +:= #$$TP(Node$a.trace_unique_id);
+    	count +:=1;
+    OD;
+    };
+
+	SAY( "Total " #$$TRACE " traces") => R;
+	SAY("In "count " of traces at least 75% of sent messages have been received") => R;
+    SAY("At the given scope probability for at least 75% messages to pass through is " summary_probability) => R;
+
+    SHOW R;
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp.txt
new file mode 100644
index 0000000..e765646
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example37_GLOBAL_query tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.tree
new file mode 100644
index 0000000000000000000000000000000000000000..7f37652a806cc96e94235b36728ec42cda90b57a
GIT binary patch
literal 9728
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.txt
new file mode 100644
index 0000000..8e52387
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example37_GLOBAL_query.txt
@@ -0,0 +1,11 @@
+generating traces for scope 1 
+completed Sender: 	1 traces (0 MARKed) 	2 events 
+
+completed Receiver: 	2 traces (0 MARKed) 	4 events 
+		average 2 ev/trace 	min 2 	max 2
+
+completed unreliable_message_flow: 	2 traces (1 MARKed) 	10 events 
+		average 5 ev/trace 	min 5 	max 5
+
+Elapsed time 0.000207 sec, Speed: 77294.7 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.cpp
new file mode 100644
index 0000000..0fd3a20
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.cpp
@@ -0,0 +1,881 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Knapsack trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > limit_number_attribute;
+       map<int,  float > accumulated_total_number_attribute;
+       map<int,  float > current_max_number_attribute;
+       map<int,  float > A_count_number_attribute;
+       map<int,  float > B_count_number_attribute;
+       map<int,  float > C_count_number_attribute;
+//-- node attributes -- 
+       map<int,  float > NODE_accumulated_total_number_attribute;
+       map<int,  float > NODE_A_count_number_attribute;
+       map<int,  float > NODE_B_count_number_attribute;
+       map<int,  float > NODE_C_count_number_attribute;
+//-- GLOBAL attributes -- 
+       float GLOBAL_limit_number_attribute;
+       float GLOBAL_current_max_number_attribute;
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( limit_number_attribute[event1] != limit_number_attribute[event2]) 
+    return false; 
+  if( accumulated_total_number_attribute[event1] != accumulated_total_number_attribute[event2]) 
+    return false; 
+  if( current_max_number_attribute[event1] != current_max_number_attribute[event2]) 
+    return false; 
+  if( A_count_number_attribute[event1] != A_count_number_attribute[event2]) 
+    return false; 
+  if( B_count_number_attribute[event1] != B_count_number_attribute[event2]) 
+    return false; 
+  if( C_count_number_attribute[event1] != C_count_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    limit_number_attribute.clear();
+    accumulated_total_number_attribute.clear();
+    current_max_number_attribute.clear();
+    A_count_number_attribute.clear();
+    B_count_number_attribute.clear();
+    C_count_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!limit_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("limit",limit_number_attribute));
+  if(!accumulated_total_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("accumulated_total",accumulated_total_number_attribute));
+  if(!current_max_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("current_max",current_max_number_attribute));
+  if(!A_count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("A_count",A_count_number_attribute));
+  if(!B_count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("B_count",B_count_number_attribute));
+  if(!C_count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("C_count",C_count_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "limit"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         limit_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "accumulated_total"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         accumulated_total_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "current_max"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         current_max_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "A_count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         A_count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "B_count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         B_count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+    else 
+    if(p1_num_attr->first == "C_count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         C_count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_62_candidates;
+report_object REPORT_97_best_knapsack;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Item_A
+    , Event_Item_B
+    , Event_Item_C
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_3_4
+    , Event_SIMPLE_LIST_10_11
+    , Event_SIMPLE_LIST_22_23
+    , Event_SIMPLE_LIST_29_30
+    , Event_SIMPLE_LIST_41_42
+    , Event_SIMPLE_LIST_48_49
+    , Event_SIMPLE_LIST_93_94
+       // ADD operations 
+       // ROOT events 
+    , Event_A
+    , Event_B
+    , Event_C
+       // main schema event 
+    , Event_Knapsack }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Item_A"
+     , "Item_B"
+     , "Item_C"
+     , "SIMPLE_LIST_3_4"
+     , "SIMPLE_LIST_10_11"
+     , "SIMPLE_LIST_22_23"
+     , "SIMPLE_LIST_29_30"
+     , "SIMPLE_LIST_41_42"
+     , "SIMPLE_LIST_48_49"
+     , "SIMPLE_LIST_93_94"
+     , "A"
+     , "B"
+     , "C"
+     , "Knapsack" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_7(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_A){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_26(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_B){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_45(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_C){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_69(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_A){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_72(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_B){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_75(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Item_C){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 7 ---- 
+class SIMPLE_LIST_3_4_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_3_4_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute limit assignment 
+    GLOBAL_limit_number_attribute=11 ; 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_3_4_ob class
+
+//---- 8 ---- 
+class SIMPLE_LIST_10_11_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_10_11_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]=( special_function_7(current_host, Root_table[Event_A])
+* 2 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_10_11_ob class
+
+//---- 9 ---- 
+class SIMPLE_LIST_22_23_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_22_23_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]+=
+       accumulated_total_number_attribute[Root_table[Event_A]] ; 
+   if( ( 
+       accumulated_total_number_attribute[0] > 
+       GLOBAL_limit_number_attribute )){ 
+   throw failed; // REJECT 
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_22_23_ob class
+
+//---- 10 ---- 
+class SIMPLE_LIST_29_30_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_29_30_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]=( special_function_26(current_host, Root_table[Event_B])
+* 3 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_29_30_ob class
+
+//---- 11 ---- 
+class SIMPLE_LIST_41_42_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_41_42_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]+=
+       accumulated_total_number_attribute[Root_table[Event_B]] ; 
+   if( ( 
+       accumulated_total_number_attribute[0] > 
+       GLOBAL_limit_number_attribute )){ 
+   throw failed; // REJECT 
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_41_42_ob class
+
+//---- 12 ---- 
+class SIMPLE_LIST_48_49_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_48_49_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]=( special_function_45(current_host, Root_table[Event_C])
+* 5 ); 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_48_49_ob class
+
+//---- 13 ---- 
+class SIMPLE_LIST_93_94_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_93_94_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // attribute accumulated_total assignment 
+    accumulated_total_number_attribute[0]+=
+       accumulated_total_number_attribute[Root_table[Event_C]] ; 
+   if( ( 
+       accumulated_total_number_attribute[0] > 
+       GLOBAL_limit_number_attribute )){ 
+   throw failed; // REJECT 
+   }// end THEN 
+    { // candidates title generation 
+     ostringstream convert; 
+     convert <<" ";
+     GRAPH_62_candidates.title = convert.str();}
+   if( ( 
+       accumulated_total_number_attribute[0] >= 
+       GLOBAL_current_max_number_attribute )){ 
+   // attribute current_max assignment 
+    GLOBAL_current_max_number_attribute=
+       accumulated_total_number_attribute[0] ; 
+   // WITHIN candidates 
+   int a_65_node_var = -1; 
+   {// NEW_NODE 
+     ostringstream convert; 
+     convert << 
+       trace_id_attribute ; 
+    a_65_node_var = GRAPH_62_candidates.create_new_node(convert.str());}
+   // attribute accumulated_total assignment 
+    NODE_accumulated_total_number_attribute[a_65_node_var]=
+       accumulated_total_number_attribute[0] ; 
+   // attribute A_count assignment 
+    NODE_A_count_number_attribute[a_65_node_var]=special_function_69(current_host, Root_table[Event_Knapsack])
+; 
+   // attribute B_count assignment 
+    NODE_B_count_number_attribute[a_65_node_var]=special_function_72(current_host, Root_table[Event_Knapsack])
+; 
+   // attribute C_count assignment 
+    NODE_C_count_number_attribute[a_65_node_var]=special_function_75(current_host, Root_table[Event_Knapsack])
+; 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Best result so far: ";
+     convert << 
+       accumulated_total_number_attribute[0] ; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_93_94_ob class
+
+//---- 14 ---- 
+class Ct_123_124 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_123_124 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_A); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_A); 
+    } 
+};// end class Ct_123_124 
+
+//---- 15 ---- 
+class Ct_125_126 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_125_126 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_A); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_A); 
+      element[ 2 ]=  new Atomic_producer(Event_Item_A); 
+    } 
+};// end class Ct_125_126 
+
+//---- 16 ---- 
+class Itr_5_6 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_5_6 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Item_A); 
+      element[ 2 ]=  new Ct_123_124 ; 
+      element[ 3 ]=  new Ct_125_126 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_5_6 
+
+//---- 17 ---- 
+class Ct_127_128 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_127_128 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_B); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_B); 
+    } 
+};// end class Ct_127_128 
+
+//---- 18 ---- 
+class Ct_129_130 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_129_130 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_B); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_B); 
+      element[ 2 ]=  new Atomic_producer(Event_Item_B); 
+    } 
+};// end class Ct_129_130 
+
+//---- 19 ---- 
+class Itr_24_25 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_24_25 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Item_B); 
+      element[ 2 ]=  new Ct_127_128 ; 
+      element[ 3 ]=  new Ct_129_130 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_24_25 
+
+//---- 20 ---- 
+class Ct_131_132 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_131_132 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_C); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_C); 
+    } 
+};// end class Ct_131_132 
+
+//---- 21 ---- 
+class Ct_133_134 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_133_134 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Item_C); 
+      element[ 1 ]=  new Atomic_producer(Event_Item_C); 
+      element[ 2 ]=  new Atomic_producer(Event_Item_C); 
+    } 
+};// end class Ct_133_134 
+
+//---- 22 ---- 
+class Itr_43_44 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_43_44 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Item_C); 
+      element[ 2 ]=  new Ct_131_132 ; 
+      element[ 3 ]=  new Ct_133_134 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_43_44 
+
+//---- 23 ---- 
+class Comp_12_13 : public Composite_producer { 
+public: // constructor 
+    Comp_12_13 (): Composite_producer(Event_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_5_6 ; 
+      element[ 1 ]=  new SIMPLE_LIST_10_11_ob(Event_SIMPLE_LIST_10_11); 
+    } 
+};// end class Comp_12_13 
+
+//---- 24 ---- 
+class Comp_31_32 : public Composite_producer { 
+public: // constructor 
+    Comp_31_32 (): Composite_producer(Event_B){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_24_25 ; 
+      element[ 1 ]=  new SIMPLE_LIST_29_30_ob(Event_SIMPLE_LIST_29_30); 
+    } 
+};// end class Comp_31_32 
+
+//---- 25 ---- 
+class Comp_50_51 : public Composite_producer { 
+public: // constructor 
+    Comp_50_51 (): Composite_producer(Event_C){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_43_44 ; 
+      element[ 1 ]=  new SIMPLE_LIST_48_49_ob(Event_SIMPLE_LIST_48_49); 
+    } 
+};// end class Comp_50_51 
+
+//---- 26 ---- 
+class SCHEMA_Knapsack: public Composite_producer {
+public: // constructor 
+    SCHEMA_Knapsack(): Composite_producer(Event_Knapsack){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new SIMPLE_LIST_3_4_ob(Event_SIMPLE_LIST_3_4);
+      element[1]= new Composite_secondary_producer(Event_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_22_23_ob(Event_SIMPLE_LIST_22_23);
+      element[3]= new Composite_secondary_producer(Event_B);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_41_42_ob(Event_SIMPLE_LIST_41_42);
+      element[5]= new Composite_secondary_producer(Event_C);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_93_94_ob(Event_SIMPLE_LIST_93_94);
+    } 
+};// end class SCHEMA_Knapsack
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    { // best_knapsack title generation 
+     ostringstream convert; 
+     convert <<"Best knapsack";
+     REPORT_97_best_knapsack.title = convert.str();}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"Weight limit ";
+     convert << 
+       GLOBAL_limit_number_attribute ; 
+     REPORT_97_best_knapsack.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"Single item's weight: A= 2 B= 3 C= 5";
+     REPORT_97_best_knapsack.report_contents.push_back(convert.str());}
+    { // increment report 
+     ostringstream convert; 
+     convert <<"For scope ";
+     convert << 3 ; 
+     convert <<" best packing is ";
+     convert << 
+       GLOBAL_current_max_number_attribute ; 
+     REPORT_97_best_knapsack.report_contents.push_back(convert.str());}
+   // WITHIN candidates 
+  // loop_over_graph for GRAPH_62_candidates 
+  { // loop over graph GRAPH_62_candidates 
+    int x_107_node_var ; 
+    int end_limit_1 = GRAPH_62_candidates .nodes.size(); 
+    for(int temp = 0; temp < end_limit_1 ; temp++){ 
+     x_107_node_var = temp; 
+   if( ( 
+       NODE_accumulated_total_number_attribute[x_107_node_var] == 
+       GLOBAL_current_max_number_attribute )){ 
+    { // increment report 
+     ostringstream convert; 
+     convert <<"Pack ";
+     convert << 
+       NODE_A_count_number_attribute[x_107_node_var] ; 
+     convert <<" of A, ";
+     convert << 
+       NODE_B_count_number_attribute[x_107_node_var] ; 
+     convert <<" of B, ";
+     convert << 
+       NODE_C_count_number_attribute[x_107_node_var] ; 
+     convert <<" of C";
+     REPORT_97_best_knapsack.report_contents.push_back(convert.str());}
+   }// end THEN 
+   } } // end GRAPH_62_candidates loop 
+    // SHOW best_knapsack 
+    report_container.insert(pair<int, report_object>( 2,REPORT_97_best_knapsack));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+   JSON<<",{\"SAY\":[";
+   string c = "\""; 
+   for(vector<string>::iterator p2 = global_SAY_list_999999.begin(); 
+       p2 != global_SAY_list_999999.end(); p2++){ 
+     JSON<<c<<*p2<<"\""; c = ",\"";} 
+   JSON<<"]}"; 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example38_knapsack.json");
+   global_flag = true;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_12_13 temp_27; temp_27.harvest();
+    Comp_31_32 temp_28; temp_28.harvest();
+    Comp_50_51 temp_29; temp_29.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Knapsack temp_30; temp_30.harvest();
+   temp_30.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Knapsack"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.mp
new file mode 100644
index 0000000..ebe7c4d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.mp
@@ -0,0 +1,81 @@
+/* Example 38 Knapsack
+
+	This is a case of well-known Knapsack Dynamic Programming Problem.
+    In general it is NP-hard and NP-complete 
+    with respect to the number N of items and to the weight limit W.
+    It has been proven that the computational complexity is O(N * W),
+    see https://en.wikipedia.org/wiki/Knapsack_problem 
+    
+    This example demonstrates MP template for performing "brute force" search
+    for all optimal solutions within the given scope 
+    (certainly not the optimal performance, but is acceptable for relatively 
+    small N,in particular, it stabilizes at scope 4).
+    
+	Run for scope 1 and up to 5
+*/
+SCHEMA Knapsack
+
+ATTRIBUTES { number limit, accumulated_total, current_max,
+    				A_count, B_count, C_count;};
+
+GLOBAL.limit := 11;
+
+ROOT 	A: (* Item_A *)
+	BUILD{ accumulated_total := #Item_A * 2;
+   	};
+
+accumulated_total +:= A.accumulated_total;
+IF accumulated_total > GLOBAL.limit THEN REJECT; FI;
+
+ROOT 	B: (* Item_B *)
+	BUILD{ accumulated_total := #Item_B * 3;
+   	};
+
+accumulated_total +:= B.accumulated_total;
+IF accumulated_total > GLOBAL.limit THEN REJECT; FI;
+
+ROOT 	C: (* Item_C *)
+	BUILD{ accumulated_total := #Item_C * 5;
+   	};
+
+accumulated_total +:= C.accumulated_total;
+IF accumulated_total > GLOBAL.limit THEN REJECT; FI;
+
+/* if got so far, check whether accumulated_total can be stored as result */
+GRAPH candidates{};
+
+IF accumulated_total >= GLOBAL.current_max THEN 
+	GLOBAL.current_max := accumulated_total;
+
+	/* add potential candidate to the list */
+	WITHIN candidates{    
+		Node$a: NEW(trace_id);
+		Node$a.accumulated_total := accumulated_total;
+        Node$a.A_count := #Item_A;
+        Node$a.B_count := #Item_B;
+        Node$a.C_count := #Item_C;
+        SAY("Best result so far: " accumulated_total);
+        };
+
+ ELSE REJECT;
+FI;
+
+GLOBAL
+REPORT best_knapsack{TITLE("Best knapsack");};
+
+SAY("Weight limit " limit) => best_knapsack;
+SAY("Single item's weight: A= 2 B= 3 C= 5" ) => best_knapsack;
+SAY("For scope " $$scope " best packing is " current_max) => best_knapsack;
+
+WITHIN candidates{
+    FOR Node$x DO
+    	IF Node$x.accumulated_total == current_max THEN
+    		SAY("Pack "
+                Node$x.A_count " of A, " 
+                Node$x.B_count " of B, " 
+    			Node$x.C_count " of C"		) => best_knapsack;
+    	FI;
+    OD;
+    };
+
+SHOW best_knapsack;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp.txt
new file mode 100644
index 0000000..59e8085
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example38_knapsack tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.tree
new file mode 100644
index 0000000000000000000000000000000000000000..3f8d998fa00e44aae098a0eee31ff5b644e52f4f
GIT binary patch
literal 17408
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.txt
new file mode 100644
index 0000000..0f6979f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example38_knapsack.txt
@@ -0,0 +1,15 @@
+generating traces for scope 3 
+completed A: 	4 traces (0 MARKed) 	10 events 
+		average 2.5 ev/trace 	min 1 	max 4
+
+completed B: 	4 traces (0 MARKed) 	10 events 
+		average 2.5 ev/trace 	min 1 	max 4
+
+completed C: 	4 traces (0 MARKed) 	10 events 
+		average 2.5 ev/trace 	min 1 	max 4
+
+completed Knapsack: 	6 traces (0 MARKed) 	44 events 
+		average 7.33333 ev/trace 	min 5 	max 9
+
+Elapsed time 0.001388 sec, Speed: 53314.1 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.cpp
new file mode 100644
index 0000000..0fe305e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.cpp
@@ -0,0 +1,2346 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Turtles trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_nobody_before
+    , Event_one_before
+    , Event_two_before
+    , Event_nobody_behinds
+    , Event_one_behinds
+    , Event_two_behinds
+    , Event_Lying
+    , Event_Telling_the_truth
+       // composite events 
+    , Event_neighbors
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+    , Event_SIMPLE_LIST_32_33
+    , Event_SIMPLE_LIST_47_48
+    , Event_SIMPLE_LIST_62_63
+    , Event_SIMPLE_LIST_178_179
+       // ADD operations 
+       // ROOT events 
+    , Event_Turtle_1
+    , Event_Turtle_2
+    , Event_Turtle_3
+       // main schema event 
+    , Event_Turtles }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "nobody_before"
+     , "one_before"
+     , "two_before"
+     , "nobody_behinds"
+     , "one_behinds"
+     , "two_behinds"
+     , "Lying"
+     , "Telling_the_truth"
+     , "neighbors"
+     , "SIMPLE_LIST_17_18"
+     , "SIMPLE_LIST_32_33"
+     , "SIMPLE_LIST_47_48"
+     , "SIMPLE_LIST_62_63"
+     , "SIMPLE_LIST_178_179"
+     , "Turtle_1"
+     , "Turtle_2"
+     , "Turtle_3"
+     , "Turtles" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+int special_function_7(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 2 ---- 
+int special_function_8(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 3 ---- 
+int special_function_9(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 4 ---- 
+int special_function_10(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 5 ---- 
+int special_function_11(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 6 ---- 
+int special_function_12(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_25(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Telling_the_truth){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_26(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_27(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_40(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Telling_the_truth){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_41(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+int special_function_42(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 13 ---- 
+int special_function_55(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Telling_the_truth){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 14 ---- 
+int special_function_56(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 15 ---- 
+int special_function_57(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 16 ---- 
+int special_function_66(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 17 ---- 
+int special_function_67(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 18 ---- 
+int special_function_68(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 19 ---- 
+int special_function_69(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 20 ---- 
+int special_function_70(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 21 ---- 
+int special_function_71(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 22 ---- 
+int special_function_80(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 23 ---- 
+int special_function_81(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 24 ---- 
+int special_function_82(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 25 ---- 
+int special_function_83(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 26 ---- 
+int special_function_84(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 27 ---- 
+int special_function_85(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 28 ---- 
+int special_function_94(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 29 ---- 
+int special_function_95(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 30 ---- 
+int special_function_96(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 31 ---- 
+int special_function_97(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 32 ---- 
+int special_function_98(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 33 ---- 
+int special_function_99(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 34 ---- 
+int special_function_100(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 35 ---- 
+int special_function_101(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 36 ---- 
+int special_function_102(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 37 ---- 
+int special_function_103(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 38 ---- 
+int special_function_104(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 39 ---- 
+int special_function_105(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 40 ---- 
+int special_function_106(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 41 ---- 
+int special_function_107(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 42 ---- 
+int special_function_108(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 43 ---- 
+int special_function_109(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 44 ---- 
+int special_function_110(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 45 ---- 
+int special_function_111(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 46 ---- 
+int special_function_116(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 47 ---- 
+int special_function_117(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 48 ---- 
+int special_function_118(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 49 ---- 
+int special_function_127(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 50 ---- 
+int special_function_128(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 51 ---- 
+int special_function_129(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 52 ---- 
+int special_function_138(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 53 ---- 
+int special_function_139(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 54 ---- 
+int special_function_140(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_one_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 55 ---- 
+int special_function_141(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_two_before){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 56 ---- 
+int special_function_150(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_nobody_behinds){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 57 ---- 
+int special_function_159(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Lying){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 58 ---- 
+int special_function_168(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Lying){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 59 ---- 
+int special_function_171(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Lying){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 60 ---- 
+bool Quantified_expr_72_73(Coordinate * current_host, int t1_variable){ 
+     //===================================== 
+     // quantifier EXISTS DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int t2_variable;
+     int pivot_t2_variable = 0; 
+     int t3_variable;
+     int pivot_t3_variable = 0; 
+
+     // loop 1 for t2_variable 
+     for( t2_variable = 0; t2_variable < len; t2_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ t2_variable  * len +  pivot_t2_variable 
+]) && 
+           (   Stack[ t2_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for t3_variable 
+     for( t3_variable = 0; t3_variable < len; t3_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ t3_variable  * len +  pivot_t3_variable 
+]) && 
+           (   Stack[ t3_variable ]->type == ROOT_node    ) 
+           // checking DISJ 
+           &&  t3_variable  !=  t2_variable 
+           && !(current_host-> eq_matrix[ t3_variable * len + t2_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( ( ( t1_variable != t2_variable ) && ( t1_variable != t3_variable )
+ )&& ( ( ( special_function_67(current_host, t2_variable ) == 1 )&& ( special_function_68(current_host, 
+t3_variable ) == 1 ))|| ( ( ( special_function_69(current_host, t2_variable ) ==
+ 1 )&& ( special_function_70(current_host, t2_variable ) == 1 ))&& ( special_function_71(current_host, 
+t3_variable ) == 1 ))))) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 61 ---- 
+bool Quantified_expr_74_75(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int t1_variable;
+     int pivot_t1_variable = 0; 
+
+     // loop 1 for t1_variable 
+     for( t1_variable = 0; t1_variable < len; t1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ t1_variable  * len +  pivot_t1_variable 
+]) && 
+           (   Stack[ t1_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( (! ( special_function_66(current_host, t1_variable ) > 0 )|| Quantified_expr_72_73(current_host, t1_variable
+) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 62 ---- 
+bool Quantified_expr_86_87(Coordinate * current_host, int t1_variable){ 
+     //===================================== 
+     // quantifier EXISTS DISJ with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int t2_variable;
+     int pivot_t2_variable = 0; 
+     int t3_variable;
+     int pivot_t3_variable = 0; 
+
+     // loop 1 for t2_variable 
+     for( t2_variable = 0; t2_variable < len; t2_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ t2_variable  * len +  pivot_t2_variable 
+]) && 
+           (   Stack[ t2_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for t3_variable 
+     for( t3_variable = 0; t3_variable < len; t3_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ t3_variable  * len +  pivot_t3_variable 
+]) && 
+           (   Stack[ t3_variable ]->type == ROOT_node    ) 
+           // checking DISJ 
+           &&  t3_variable  !=  t2_variable 
+           && !(current_host-> eq_matrix[ t3_variable * len + t2_variable ]) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( ( ( t1_variable != t2_variable ) && ( t1_variable != t3_variable )
+ )&& ( ( ( special_function_81(current_host, t2_variable ) == 1 )&& ( special_function_82(current_host, 
+t3_variable ) == 1 ))|| ( ( ( special_function_83(current_host, t2_variable ) ==
+ 1 )&& ( special_function_84(current_host, t2_variable ) == 1 ))&& ( special_function_85(current_host, 
+t3_variable ) == 1 ))))) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 63 ---- 
+bool Quantified_expr_88_89(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int t1_variable;
+     int pivot_t1_variable = 0; 
+
+     // loop 1 for t1_variable 
+     for( t1_variable = 0; t1_variable < len; t1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ t1_variable  * len +  pivot_t1_variable 
+]) && 
+           (   Stack[ t1_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( (! ( special_function_80(current_host, t1_variable ) > 0 )|| Quantified_expr_86_87(current_host, t1_variable
+) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 64 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( ( ( special_function_7(current_host, Root_table[Event_neighbors])+ special_function_8(current_host, Root_table[Event_neighbors]))
+< 2 )&& (! ( special_function_9(current_host, Root_table[Event_neighbors])== 1 )
+|| ( special_function_10(current_host, Root_table[Event_neighbors])== 1 )))&& (!
+ ( special_function_11(current_host, Root_table[Event_neighbors])== 1 )|| ( special_function_12(current_host, Root_table[Event_neighbors])
+== 1 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 65 ---- 
+class SIMPLE_LIST_32_33_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_32_33_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( special_function_25(current_host, Root_table[Event_Turtle_1])== 1 )==
+ ( ( special_function_26(current_host, Root_table[Event_Turtle_1])== 1 )&& ( special_function_27(current_host, Root_table[Event_Turtle_1])
+== 1 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_32_33_ob class
+
+//---- 66 ---- 
+class SIMPLE_LIST_47_48_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_47_48_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( special_function_40(current_host, Root_table[Event_Turtle_2])== 1 )==
+ ( ( special_function_41(current_host, Root_table[Event_Turtle_2])== 1 )&& ( special_function_42(current_host, Root_table[Event_Turtle_2])
+== 1 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_47_48_ob class
+
+//---- 67 ---- 
+class SIMPLE_LIST_62_63_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_62_63_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( ( special_function_55(current_host, Root_table[Event_Turtle_3])== 1 )==
+ ( ( special_function_56(current_host, Root_table[Event_Turtle_3])== 1 )&& ( special_function_57(current_host, Root_table[Event_Turtle_3])
+== 1 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_62_63_ob class
+
+//---- 68 ---- 
+class SIMPLE_LIST_178_179_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_178_179_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( Quantified_expr_74_75(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_88_89(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( ( ( ( ( ( ( ( ( special_function_94(current_host, Root_table[Event_Turtles])
+== 1 )&& ( special_function_95(current_host, Root_table[Event_Turtles])== 2 ))&&
+ ( special_function_96(current_host, Root_table[Event_Turtles])== 0 ))&& ( special_function_97(current_host, Root_table[Event_Turtles])
+== 0 ))&& ( special_function_98(current_host, Root_table[Event_Turtles])== 2 ))
+&& ( special_function_99(current_host, Root_table[Event_Turtles])== 1 ))|| ( ( (
+ ( ( ( special_function_100(current_host, Root_table[Event_Turtles])== 1 )&& ( special_function_101(current_host, Root_table[Event_Turtles])
+== 2 ))&& ( special_function_102(current_host, Root_table[Event_Turtles])== 0 ))
+&& ( special_function_103(current_host, Root_table[Event_Turtles])== 0 ))&& ( special_function_104(current_host, Root_table[Event_Turtles])
+== 1 ))&& ( special_function_105(current_host, Root_table[Event_Turtles])== 2 )))
+|| ( ( ( ( special_function_106(current_host, Root_table[Event_Turtles])== 1 )&&
+ ( special_function_107(current_host, Root_table[Event_Turtles])== 1 ))&& ( special_function_108(current_host, Root_table[Event_Turtles])
+== 1 ))&& ( special_function_109(current_host, Root_table[Event_Turtles])== 1 )))
+|| ( ( special_function_110(current_host, Root_table[Event_Turtles])== 3 )&& ( special_function_111(current_host, Root_table[Event_Turtles])
+== 3 )))){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( ( ( special_function_116(current_host, Root_table[Event_Turtles])== 1 )
+&& ( special_function_117(current_host, Root_table[Event_Turtles])== 2 ))&& ( special_function_118(current_host, Root_table[Event_Turtles])
+== 0 ))){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"form fork upward";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+   if( ( ( ( special_function_127(current_host, Root_table[Event_Turtles])== 1 )
+&& ( special_function_128(current_host, Root_table[Event_Turtles])== 2 ))&& ( special_function_129(current_host, Root_table[Event_Turtles])
+== 0 ))){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"form fork downward";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+   if( ( ( ( ( special_function_138(current_host, Root_table[Event_Turtles])== 1
+ )&& ( special_function_139(current_host, Root_table[Event_Turtles])== 1 ))&& ( special_function_140(current_host, Root_table[Event_Turtles])
+== 1 ))&& ( special_function_141(current_host, Root_table[Event_Turtles])== 1 ))
+){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"form vertical line";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+   if( ( special_function_150(current_host, Root_table[Event_Turtles])== 3 )){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"moving parallel";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end THEN 
+   if( ( special_function_159(current_host, Root_table[Event_Turtles])== 0 )){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"All three are telling truth!";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   Mark = 'M'; // MARK
+   }// end THEN 
+  else{ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert << special_function_171(current_host, Root_table[Event_Turtles]); 
+     convert <<" are lying";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_178_179_ob class
+
+//---- 69 ---- 
+class Alt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_nobody_before); 
+      element[ 1 ]=  new Atomic_producer(Event_one_before); 
+      element[ 2 ]=  new Atomic_producer(Event_two_before); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_1_2 
+
+//---- 70 ---- 
+class Alt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_nobody_behinds); 
+      element[ 1 ]=  new Atomic_producer(Event_one_behinds); 
+      element[ 2 ]=  new Atomic_producer(Event_two_behinds); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_3_4 
+
+//---- 71 ---- 
+class Set_5_6 : public SET_node_producer_container { 
+public: // constructor 
+    Set_5_6 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_1_2 ; 
+      element[ 1 ]=  new Alt_3_4 ; 
+    } 
+};// end class Set_5_6 
+
+//---- 72 ---- 
+class Alt_21_22 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_21_22 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Lying); 
+      element[ 1 ]=  new Atomic_producer(Event_Telling_the_truth); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_21_22 
+
+//---- 73 ---- 
+class Sq_23_24 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_23_24 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_neighbors); 
+      element[ 1 ]=  new Alt_21_22 ; 
+    } 
+};// end class Sq_23_24 
+
+//---- 74 ---- 
+class Alt_36_37 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_36_37 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Lying); 
+      element[ 1 ]=  new Atomic_producer(Event_Telling_the_truth); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_36_37 
+
+//---- 75 ---- 
+class Sq_38_39 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_38_39 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_neighbors); 
+      element[ 1 ]=  new Alt_36_37 ; 
+    } 
+};// end class Sq_38_39 
+
+//---- 76 ---- 
+class Alt_51_52 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_51_52 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Lying); 
+      element[ 1 ]=  new Atomic_producer(Event_Telling_the_truth); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_51_52 
+
+//---- 77 ---- 
+class Sq_53_54 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_53_54 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Composite_secondary_producer(Event_neighbors); 
+      element[ 1 ]=  new Alt_51_52 ; 
+    } 
+};// end class Sq_53_54 
+
+//---- 78 ---- 
+class Comp_19_20 : public Composite_producer { 
+public: // constructor 
+    Comp_19_20 (): Composite_producer(Event_neighbors){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Set_5_6 ; 
+      element[ 1 ]=  new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18); 
+    } 
+};// end class Comp_19_20 
+
+//---- 79 ---- 
+class Comp_34_35 : public Composite_producer { 
+public: // constructor 
+    Comp_34_35 (): Composite_producer(Event_Turtle_1){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_23_24 ; 
+      element[ 1 ]=  new SIMPLE_LIST_32_33_ob(Event_SIMPLE_LIST_32_33); 
+    } 
+};// end class Comp_34_35 
+
+//---- 80 ---- 
+class Comp_49_50 : public Composite_producer { 
+public: // constructor 
+    Comp_49_50 (): Composite_producer(Event_Turtle_2){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_38_39 ; 
+      element[ 1 ]=  new SIMPLE_LIST_47_48_ob(Event_SIMPLE_LIST_47_48); 
+    } 
+};// end class Comp_49_50 
+
+//---- 81 ---- 
+class Comp_64_65 : public Composite_producer { 
+public: // constructor 
+    Comp_64_65 (): Composite_producer(Event_Turtle_3){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_53_54 ; 
+      element[ 1 ]=  new SIMPLE_LIST_62_63_ob(Event_SIMPLE_LIST_62_63); 
+    } 
+};// end class Comp_64_65 
+
+//---- 82 ---- 
+class SCHEMA_Turtles: public Composite_producer {
+public: // constructor 
+    SCHEMA_Turtles(): Composite_producer(Event_Turtles){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Turtle_1);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Turtle_2);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Turtle_3);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_178_179_ob(Event_SIMPLE_LIST_178_179);
+    } 
+};// end class SCHEMA_Turtles
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example39_turtles.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_19_20 temp_83; temp_83.harvest();
+   // harvesting traces for ROOT events 
+    Comp_34_35 temp_84; temp_84.harvest();
+    Comp_49_50 temp_85; temp_85.harvest();
+    Comp_64_65 temp_86; temp_86.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Turtles temp_87; temp_87.harvest();
+   temp_87.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Turtles"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.mp
new file mode 100644
index 0000000..bedbdb0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.mp
@@ -0,0 +1,132 @@
+/* Example39    turtles.mp
+ 
+ Demonstration of the benefits for complete
+ example set generation in MP.
+ 
+
+ Three turtles are moving on a desert plain, all in the same direction.
+ The first has been asked: "What do you see?" It answered:   
+ "I see nobody before me and two turtles behind." The second turtle has been 
+ asked the same question: "What do you see?" and answered 
+ "I see one turtle before me and one behind." When the third turtle 
+ is asked the same question, it answers: "I see one turtle before 
+ me and one behind." How could that be?
+ 
+Don't try to construct a non-Euclidean geometry to 
+ accommodate the possible turtle configuration. A person with common sense 
+ after a short moment of time will say: "The third is lying!" The 
+ reaction will be: "Ahh, yes! But wait, maybe the first is lying, or the second, 
+ or all three of them. It becomes too complicated...."
+ 
+ Now it is time to use MP to obtain all possible scenarios for that story.
+ 
+ Here it is. Run for scope 1.
+ There are 13 possible scenarios, and none when all three 
+ are telling the truth.
+ 
+ ==================================*/
+SCHEMA Turtles
+
+neighbors: { (nobody_before  | one_before  | two_before ),
+    		 (nobody_behinds | one_behinds | two_behinds)  }
+BUILD{
+    /* no more than one of two_before or two_behinds */
+    ENSURE (#two_before + #two_behinds) < 2 	AND
+    (#two_before == 1 -> #nobody_behinds == 1)	AND
+    (#two_behinds == 1 -> #nobody_before == 1) ;
+    };
+
+ROOT Turtle_1: neighbors (Lying | Telling_the_truth)
+BUILD{
+    ENSURE (#Telling_the_truth == 1 <-> 
+        		#nobody_before == 1 AND #two_behinds == 1);
+    };
+
+ROOT Turtle_2: neighbors (Lying | Telling_the_truth)
+BUILD{
+    ENSURE (#Telling_the_truth == 1 <-> 
+        		#one_before == 1 AND #one_behinds == 1);
+    };
+
+ROOT Turtle_3: neighbors (Lying | Telling_the_truth)
+BUILD{
+    ENSURE (#Telling_the_truth == 1 <-> 
+        		#one_before == 1 AND #one_behinds == 1);
+    };
+
+/*=============================== 
+	global constraints 
+=================================*/
+/* ensure the shape of the pack 
+---------------------------------*/
+ENSURE FOREACH $t1: $$ROOT 
+	(#two_before FROM $t1 > 0 -> EXISTS DISJ $t2: $$ROOT, $t3: $$ROOT 
+        	$t1 != $t2 AND $t1 != $t3 AND
+        
+        		/* $t1 is the root of upward fork */
+        	( (#one_behinds FROM $t2 == 1 AND #one_behinds FROM $t3 == 1) OR
+                
+                /* $t1 is the bottom of vertical line */
+        	  (#one_behinds FROM $t2 == 1 AND #one_behinds FROM $t2 == 1 AND 
+                  #two_behinds FROM $t3 == 1 )
+            )
+    ); 
+        
+ENSURE FOREACH $t1: $$ROOT 
+	(#two_behinds FROM $t1 > 0 -> EXISTS DISJ $t2: $$ROOT, $t3: $$ROOT 
+        	$t1 != $t2 AND $t1 != $t3 AND 
+        
+             	/* $t1 is the top of downward fork */
+        	( (#one_before FROM $t2 == 1 AND #one_before FROM $t3 == 1) OR
+        
+                /* $t1 is the top of vertical line */
+        	  (#one_behinds FROM $t2 == 1 AND #one_behinds FROM $t2 == 1 AND 
+                  #two_before FROM $t3 == 1 )
+            )
+    ); 
+
+/* turtles form either a fork or a line */
+/*======================================*/
+ENSURE  /* fork upward */
+		#two_before == 1 	AND 
+		#one_behinds == 2 	AND
+		#one_before == 0 	AND
+		#two_behinds == 0 	AND
+		#nobody_before == 2 AND
+		#nobody_behinds == 1 	OR
+
+		/* fork downward */
+		#two_behinds == 1 	AND 
+		#one_before == 2 	AND
+		#one_behinds == 0 	AND
+		#two_before == 0 	AND 	
+		#nobody_before == 1 AND
+		#nobody_behinds == 2 	OR
+
+		/* vertical */
+ 		#two_behinds == 1 	AND  
+		#one_before == 1 	AND 
+		#one_behinds == 1 	AND 
+		#two_before == 1 		OR
+
+		/* parallel */
+		#nobody_behinds == 3 AND
+		#nobody_before == 3
+;
+/*-------------------------------------------------------*/
+IF #two_before == 1 AND #one_behinds == 2 AND #one_before == 0 THEN
+		SAY("form fork upward"); FI;
+
+IF #two_behinds == 1 AND #one_before == 2 AND #one_behinds == 0 THEN
+		SAY("form fork downward"); FI;
+
+    
+IF #two_behinds == 1 AND #one_before == 1 AND 
+	#one_behinds == 1 AND #two_before == 1 THEN 
+		SAY("form vertical line"); FI;
+
+IF #nobody_behinds == 3 THEN
+		SAY("moving parallel"); FI;
+
+IF #Lying == 0 THEN SAY("All three are telling truth!"); MARK; 
+ELSE SAY( #Lying " are lying"); FI;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp.txt
new file mode 100644
index 0000000..a0251d2
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example39_turtles tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.tree
new file mode 100644
index 0000000000000000000000000000000000000000..4465a42e2fe8a1571f688eceb525d23e5488c02f
GIT binary patch
literal 36864
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.txt
new file mode 100644
index 0000000..2f53500
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example39_turtles.txt
@@ -0,0 +1,18 @@
+generating traces for scope 1 
+completed neighbors: 	6 traces (0 MARKed) 	18 events 
+		average 3 ev/trace 	min 3 	max 3
+
+completed Turtle_1: 	6 traces (0 MARKed) 	30 events 
+		average 5 ev/trace 	min 5 	max 5
+
+completed Turtle_2: 	6 traces (0 MARKed) 	30 events 
+		average 5 ev/trace 	min 5 	max 5
+
+completed Turtle_3: 	6 traces (0 MARKed) 	30 events 
+		average 5 ev/trace 	min 5 	max 5
+
+completed Turtles: 	13 traces (0 MARKed) 	234 events 
+		average 18 ev/trace 	min 18 	max 18
+
+Elapsed time 0.10552 sec, Speed: 3241.09 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.cpp
new file mode 100644
index 0000000..d8e5814
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.cpp
@@ -0,0 +1,1295 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Web_browser trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list causes_UDR_set;
+       pair_list is_response_to_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    causes_UDR_set.clear();
+    is_response_to_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!causes_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("causes",causes_UDR_set));
+  if(!is_response_to_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("is_response_to",is_response_to_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "causes"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         causes_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+    else 
+    if(p1->first == "is_response_to"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         is_response_to_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  causes_UDR_set 
+  temp_list.clear(); 
+   for(p = causes_UDR_set.begin(); p != causes_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   causes_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  is_response_to_UDR_set 
+  temp_list.clear(); 
+   for(p = is_response_to_UDR_set.begin(); p != is_response_to_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   is_response_to_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from causes_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = causes_UDR_set.begin(); p != causes_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  causes_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  // merging from is_response_to_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = is_response_to_UDR_set.begin(); p != is_response_to_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  is_response_to_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_Request
+    , Event_Redirect
+    , Event_Send_Response
+    , Event_Process_Response
+       // composite events 
+    , Event_Response
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_13_14
+    , Event_SIMPLE_LIST_34_35
+    , Event_SIMPLE_LIST_53_54
+    , Event_SIMPLE_LIST_73_74
+    , Event_SIMPLE_LIST_137_138
+       // ADD operations 
+       // ROOT events 
+    , Event_Client
+    , Event_Good_Server
+    , Event_Bad_Server
+       // main schema event 
+    , Event_Web_browser }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "Request"
+     , "Redirect"
+     , "Send_Response"
+     , "Process_Response"
+     , "Response"
+     , "SIMPLE_LIST_13_14"
+     , "SIMPLE_LIST_34_35"
+     , "SIMPLE_LIST_53_54"
+     , "SIMPLE_LIST_73_74"
+     , "SIMPLE_LIST_137_138"
+     , "Client"
+     , "Good_Server"
+     , "Bad_Server"
+     , "Web_browser" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_77_78 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 FROM temp2 
+     return (bool)( (current_host ->in_matrix)[temp1 * len + temp2]); 
+ } 
+
+//---- 2 ---- 
+bool Event_comparison_expr_79_80 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 FROM temp2 
+     return (bool)( (current_host ->in_matrix)[temp1 * len + temp2]); 
+ } 
+
+//---- 3 ---- 
+bool Event_comparison_expr_87_88 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 FROM temp2 
+     return (bool)( (current_host ->in_matrix)[temp1 * len + temp2]); 
+ } 
+
+//---- 4 ---- 
+bool Event_comparison_expr_89_90 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 FROM temp2 
+     return (bool)( (current_host ->in_matrix)[temp1 * len + temp2]); 
+ } 
+
+//---- 5 ---- 
+bool Event_comparison_expr_123_124 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 BEFORE temp2 
+     return (bool)( (current_host ->follows_matrix)[temp2 * len + temp1]); 
+ } 
+
+//---- 6 ---- 
+int special_function_23(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Redirect){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 7 ---- 
+int special_function_28(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Request){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 8 ---- 
+int special_function_29(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Process_Response){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 9 ---- 
+int special_function_42(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Redirect){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 10 ---- 
+int special_function_47(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Request){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 11 ---- 
+int special_function_48(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Process_Response){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 12 ---- 
+int special_function_61(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Response){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 13 ---- 
+int special_function_62(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Redirect){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 14 ---- 
+int special_function_67(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Request){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 15 ---- 
+int special_function_68(Coordinate * host, int  pivot){
+// #event counting performed with respect to the pivot event 
+     vector<int> selected_list ; // list of selected events 
+
+     host->create_matrices(); 
+     int len = host->len; 
+     // create list of selected events 
+     for(int i = 0; i < len; i++){ 
+       if(host-> in_matrix [ i * len +  pivot ]){ 
+         if(   Stack[i]->name == Event_Process_Response){ 
+         // make sure this is fresh event not yet shared 
+           int found = 0; 
+           for(vector<int>:: iterator s = selected_list.begin(); 
+				  s != selected_list.end(); s++){ 
+				if((found = host->eq_matrix[i * len + *s])) break; 
+			}; // end of search for shared events 
+			if(!found) selected_list.push_back(i); 
+           }; // end if for selection 
+        }; // end if for matrix 
+     }; // end for 
+
+    return selected_list.size(); 
+} 
+
+//---- 16 ---- 
+bool Quantified_expr_81_82(Coordinate * current_host, int a_variable, int b_variable, int c_variable
+){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   Stack[ s_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ! ( Event_comparison_expr_77_78 (current_host, a_variable , 
+s_variable ) && Event_comparison_expr_79_80 (current_host, b_variable , 
+s_variable ) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 17 ---- 
+bool Quantified_expr_91_92(Coordinate * current_host, int a_variable, int b_variable, int c_variable
+){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int s_variable;
+     int pivot_s_variable = 0; 
+
+     // loop 1 for s_variable 
+     for( s_variable = 0; s_variable < len; s_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ s_variable  * len +  pivot_s_variable 
+]) && 
+           (   Stack[ s_variable ]->type == ROOT_node    ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( ( Event_comparison_expr_87_88 (current_host, a_variable , s_variable
+ ) && Event_comparison_expr_89_90 (current_host, c_variable , s_variable ) )) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 18 ---- 
+bool Quantified_expr_117_118(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int r1_variable;
+     int pivot_r1_variable = Root_table[Event_Client];
+     int r2_variable;
+     int pivot_r2_variable = Root_table[Event_Bad_Server];
+
+     // loop 1 for r1_variable 
+     for( r1_variable = 0; r1_variable < len; r1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ r1_variable  * len +  pivot_r1_variable 
+]) && 
+           (   
+            (Stack[r1_variable]-> name == Event_Request)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for r2_variable 
+     for( r2_variable = 0; r2_variable < len; r2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ r2_variable  * len +  pivot_r2_variable 
+]) && 
+           (   
+            (Stack[r2_variable]-> name == Event_Response)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( 
+ find_pair_in_table( r1_variable , r2_variable , causes_UDR_set)) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 19 ---- 
+bool Quantified_expr_125_126(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier EXISTS with 2 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int r1_variable;
+     int pivot_r1_variable = Root_table[Event_Client];
+     int r2_variable;
+     int pivot_r2_variable = 0; 
+
+     // loop 1 for r1_variable 
+     for( r1_variable = 0; r1_variable < len; r1_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ r1_variable  * len +  pivot_r1_variable 
+]) && 
+           (   
+            (Stack[r1_variable]-> name == Event_Process_Response)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+     // loop 2 for r2_variable 
+     for( r2_variable = 0; r2_variable < len; r2_variable ++){ 
+       // selection condition for 2 FROM 
+       if( (current_host-> in_matrix [ r2_variable  * len +  pivot_r2_variable 
+]) && 
+           (   
+            (Stack[r2_variable]-> name == Event_Redirect)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 2 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( Event_comparison_expr_123_124 (current_host, r2_variable , 
+r1_variable ) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 2 
+     }; // end for loop 2 
+
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 20 ---- 
+class SIMPLE_LIST_13_14_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_13_14_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int r_variable; // thread variable
+  vector<int> r_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for r_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r_variable = i; 
+      if( r_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Request))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r_variable_list.begin(); s != r_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r_variable_list.size();
+  if(thread_length != r_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    r_variable= r_variable_list[i];
+    // ADD operation 
+    causes_UDR_set.insert(pair<int, int>(0,r_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_13_14_ob class
+
+//---- 21 ---- 
+class SIMPLE_LIST_34_35_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_34_35_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_23(current_host, Root_table[Event_Client])== 0 )){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_28(current_host, Root_table[Event_Client])== special_function_29(current_host, Root_table[Event_Client]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_34_35_ob class
+
+//---- 22 ---- 
+class SIMPLE_LIST_53_54_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_53_54_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_42(current_host, Root_table[Event_Good_Server])== 0 )
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_47(current_host, Root_table[Event_Good_Server])== special_function_48(current_host, Root_table[Event_Good_Server]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_53_54_ob class
+
+//---- 23 ---- 
+class SIMPLE_LIST_73_74_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_73_74_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   if( ( special_function_61(current_host, Root_table[Event_Bad_Server])== special_function_62(current_host, Root_table[Event_Bad_Server]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( ( special_function_67(current_host, Root_table[Event_Bad_Server])== special_function_68(current_host, Root_table[Event_Bad_Server]))
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_73_74_ob class
+
+//---- 24 ---- 
+class SIMPLE_LIST_137_138_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_137_138_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int c_variable; // thread variable
+  vector<int> c_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Request))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Response))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // preparing thread for c_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      c_variable = i; 
+      if( c_variable_list.size() == thread_length){
+         a_variable = 0; 
+         b_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[c_variable_list.size()];
+         b_variable = b_variable_list[c_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Process_Response))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = c_variable_list.begin(); s != c_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) c_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source c_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = c_variable_list.size();
+  if(thread_length != c_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    b_variable= b_variable_list[i];
+    c_variable= c_variable_list[i];
+   if( Quantified_expr_81_82(current_host, a_variable, b_variable, c_variable) 
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_91_92(current_host, a_variable, b_variable, c_variable) 
+){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    causes_UDR_set.insert(pair<int, int>(a_variable,b_variable));
+    // ADD operation 
+    is_response_to_UDR_set.insert(pair<int, int>(b_variable,a_variable));
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int d_variable; // thread variable
+  vector<int> d_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for d_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      d_variable = i; 
+      if( d_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  b_variable ]){ 
+       if( (  (Stack[i]->name == Event_Send_Response))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = d_variable_list.begin(); s != d_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) d_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source d_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = d_variable_list.size();
+  if(thread_length != d_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    d_variable= d_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(c_variable,d_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+    // ADD operation 
+    causes_UDR_set.insert(pair<int, int>(d_variable,c_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( ! Quantified_expr_117_118(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_125_126(current_host) ){ 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Response to Client may be affected by Bad Server";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+   Mark = 'M'; // MARK
+   }// end THEN 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_137_138_ob class
+
+//---- 25 ---- 
+class SetIt_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    SetIt_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Request); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class SetIt_1_2 
+
+//---- 26 ---- 
+class Opt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_Redirect); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_3_4 
+
+//---- 27 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new SetIt_1_2 ; 
+      element[ 1 ]=  new Opt_3_4 ; 
+      element[ 2 ]=  new Atomic_producer(Event_Send_Response); 
+    } 
+};// end class Sq_5_6 
+
+//---- 28 ---- 
+class Alt_17_18 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_17_18 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Request); 
+      element[ 1 ]=  new Atomic_producer(Event_Process_Response); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Response); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_17_18 
+
+//---- 29 ---- 
+class Sq_21_22 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_21_22 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Request); 
+      element[ 1 ]=  new Alt_17_18 ; 
+    } 
+};// end class Sq_21_22 
+
+//---- 30 ---- 
+class Alt_38_39 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_38_39 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Request); 
+      element[ 1 ]=  new Atomic_producer(Event_Process_Response); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Response); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_38_39 
+
+//---- 31 ---- 
+class Ct_139_140 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_139_140 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_38_39 ; 
+      element[ 1 ]=  new Alt_38_39 ; 
+    } 
+};// end class Ct_139_140 
+
+//---- 32 ---- 
+class Itr_40_41 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_40_41 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_38_39 ; 
+      element[ 2 ]=  new Ct_139_140 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itr_40_41 
+
+//---- 33 ---- 
+class Alt_57_58 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_57_58 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_Request); 
+      element[ 1 ]=  new Atomic_producer(Event_Process_Response); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Response); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Alt_57_58 
+
+//---- 34 ---- 
+class Ct_141_142 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_141_142 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Alt_57_58 ; 
+      element[ 1 ]=  new Alt_57_58 ; 
+    } 
+};// end class Ct_141_142 
+
+//---- 35 ---- 
+class Itr_59_60 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_59_60 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Alt_57_58 ; 
+      element[ 2 ]=  new Ct_141_142 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itr_59_60 
+
+//---- 36 ---- 
+class Comp_15_16 : public Composite_producer { 
+public: // constructor 
+    Comp_15_16 (): Composite_producer(Event_Response){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+      element[ 1 ]=  new SIMPLE_LIST_13_14_ob(Event_SIMPLE_LIST_13_14); 
+    } 
+};// end class Comp_15_16 
+
+//---- 37 ---- 
+class Comp_36_37 : public Composite_producer { 
+public: // constructor 
+    Comp_36_37 (): Composite_producer(Event_Client){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_21_22 ; 
+      element[ 1 ]=  new SIMPLE_LIST_34_35_ob(Event_SIMPLE_LIST_34_35); 
+    } 
+};// end class Comp_36_37 
+
+//---- 38 ---- 
+class Comp_55_56 : public Composite_producer { 
+public: // constructor 
+    Comp_55_56 (): Composite_producer(Event_Good_Server){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_40_41 ; 
+      element[ 1 ]=  new SIMPLE_LIST_53_54_ob(Event_SIMPLE_LIST_53_54); 
+    } 
+};// end class Comp_55_56 
+
+//---- 39 ---- 
+class Comp_75_76 : public Composite_producer { 
+public: // constructor 
+    Comp_75_76 (): Composite_producer(Event_Bad_Server){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Itr_59_60 ; 
+      element[ 1 ]=  new SIMPLE_LIST_73_74_ob(Event_SIMPLE_LIST_73_74); 
+    } 
+};// end class Comp_75_76 
+
+//---- 40 ---- 
+class SCHEMA_Web_browser: public Composite_producer {
+public: // constructor 
+    SCHEMA_Web_browser(): Composite_producer(Event_Web_browser){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Client);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Good_Server);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Bad_Server);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_137_138_ob(Event_SIMPLE_LIST_137_138);
+    } 
+};// end class SCHEMA_Web_browser
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example40_web_browsers.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_15_16 temp_41; temp_41.harvest();
+   // harvesting traces for ROOT events 
+    Comp_36_37 temp_42; temp_42.harvest();
+    Comp_55_56 temp_43; temp_43.harvest();
+    Comp_75_76 temp_44; temp_44.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Web_browser temp_45; temp_45.harvest();
+   temp_45.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Web_browser"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.mp
new file mode 100644
index 0000000..5c6181c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.mp
@@ -0,0 +1,107 @@
+/* Example 40. MP Web browsers formal security model.
+   
+based on the papers by: 
+
+Daniel Jackson
+Alloy: A Language and Tool for Exploring Software Designs
+Communications of the ACM, September 2019, Vol. 62 No. 9, Pages 66-76
+
+and 
+
+Akhawe, D., Barth, A., Lam, P.E., Mitchell, J. and Song, D. 
+Towards a formal foundation of Web security. 
+In Proceedings of the 23rd IEEE Computer Security Foundations Symp. 
+Edinburgh, 2010, 290–304.
+
+In particular, we've found very inspiring the sentences from the 
+Akhave et al.:
+
+"We believe that examining the set of possible events
+accurately captures the way that web security mechanisms
+are designed" (page 292)
+
+and 
+
+"The browser, server, and network behavior
+form the “backbone” of the model" (page 292) 
+
+This has motivated to design the MP behavior model of the web activities 
+in order to model the vulnerabilities explained in the papers above.
+
+	run for scope 1: 3 traces, no counterexamples for Property1, in less than 0.001 sec.
+    run for scope 2: 7 traces, 1 counterexample for Property1, in 0.13 sec.
+    run for scope 3: 52 traces, 16 counterexamples for Property1, in 15 sec.
+    
+    This example borrowed from Daniel Jackson's paper demonstrates 
+    how MP can check whether Client's web query may 
+	be indirectly affected by Bad Server's Redirect intervention.
+    
+==============================================================================*/
+SCHEMA Web_browser
+
+/* Response may embed some Request events,
+	Only Responses from Bad_Server contain Redirect */
+Response: {* Request *} [ Redirect ] Send_Response
+BUILD{ 
+    COORDINATE $r: Request
+    	DO 
+    		ADD THIS causes $r;
+    	OD;
+};
+
+/* Client starts interactions */
+ROOT Client: Request (+ (Request | Process_Response | Response ) +)
+BUILD{ 
+    ENSURE #Redirect == 0;
+
+    ENSURE #Request == #Process_Response; };
+
+
+ROOT Good_Server: (*<0 .. $$scope + 1> (Request | Process_Response | Response ) *) 
+BUILD{ 
+    ENSURE #Redirect == 0;
+
+    ENSURE #Request == #Process_Response; }; 
+
+
+ROOT Bad_Server: (*<0 .. $$scope + 1>  (Request | Process_Response | Response ) *) 
+BUILD{ 
+    ENSURE #Response == #Redirect;
+    
+    ENSURE #Request == #Process_Response; }; 
+
+
+COORDINATE 	$a: Request, 
+			$b: Response,
+			$c: Process_Response
+	DO 	
+		/* No Server should respond to its own Request */
+		ENSURE FOREACH $s: $$ROOT NOT ($a FROM $s AND $b FROM $s);  
+ 
+		/* allow only pairs Request/Process_Request from the same Server */
+		ENSURE EXISTS $s: $$ROOT ($a FROM $s AND $c FROM $s);
+
+		ADD $a PRECEDES $b; 
+		ADD $a causes $b;
+
+		/* to make the correspondence between Request/Process_Response more visible */
+		ADD $b is_response_to $a; 
+
+		COORDINATE $d: Send_Response FROM $b 
+			DO
+				ADD $d PRECEDES $c;
+				ADD $d causes $c;
+			OD;
+	OD;
+
+/* Client never does directly interact with Bad_Server */
+ENSURE NOT EXISTS $r1: Request FROM Client, $r2: Response FROM Bad_Server ($r1 causes $r2);
+
+/*=================== Property1 =========================
+	 Check whether Client's Process_Response may 
+	be indirectly affected by Bad_Server's Redirect intervention 
+=========================================================*/
+IF EXISTS $r1: Process_Response FROM Client, $r2: Redirect ($r2 BEFORE $r1) 
+THEN    SAY("Response to Client may be affected by Bad Server");  
+        MARK; 
+FI;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp.txt
new file mode 100644
index 0000000..1615ab5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example40_web_browsers tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.tree
new file mode 100644
index 0000000000000000000000000000000000000000..189dd308ccfa5d02af82a2e35dae4934f32f4574
GIT binary patch
literal 19968
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.txt
new file mode 100644
index 0000000..1ce5a20
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example40_web_browsers.txt
@@ -0,0 +1,17 @@
+generating traces for scope 1 
+completed Response: 	4 traces (0 MARKed) 	12 events 
+		average 3 ev/trace 	min 2 	max 4
+
+completed Client: 	1 traces (0 MARKed) 	3 events 
+
+completed Good_Server: 	7 traces (0 MARKed) 	25 events 
+		average 3.57143 ev/trace 	min 1 	max 5
+
+completed Bad_Server: 	7 traces (0 MARKed) 	30 events 
+		average 4.28571 ev/trace 	min 1 	max 7
+
+completed Web_browser: 	3 traces (0 MARKed) 	33 events 
+		average 11 ev/trace 	min 8 	max 13
+
+Elapsed time 0.003506 sec, Speed: 29378.2 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.cpp
new file mode 100644
index 0000000..608d0a8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.cpp
@@ -0,0 +1,971 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Replay_Attack trace generator for scope 3 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_sends_password_to_Bob
+    , Event_presents_Alice_password
+    , Event_talks
+    , Event_message_in_transit
+    , Event_eavesesdrops_message
+    , Event_requests_password_from_Alice
+    , Event_receives_password_from_Alice
+    , Event_asks_for_password
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_17_18
+    , Event_SIMPLE_LIST_33_34
+    , Event_SIMPLE_LIST_67_68
+       // ADD operations 
+       // ROOT events 
+    , Event_Alice
+    , Event_Network
+    , Event_Eve
+    , Event_Bob
+       // main schema event 
+    , Event_Replay_Attack }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "sends_password_to_Bob"
+     , "presents_Alice_password"
+     , "talks"
+     , "message_in_transit"
+     , "eavesesdrops_message"
+     , "requests_password_from_Alice"
+     , "receives_password_from_Alice"
+     , "asks_for_password"
+     , "SIMPLE_LIST_17_18"
+     , "SIMPLE_LIST_33_34"
+     , "SIMPLE_LIST_67_68"
+     , "Alice"
+     , "Network"
+     , "Eve"
+     , "Bob"
+     , "Replay_Attack" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Event_comparison_expr_61_62 
+(Coordinate * current_host, int temp1, int temp2){ 
+     bool host_has_no_matrices = !(current_host ->in_matrix); 
+     if(host_has_no_matrices) current_host->create_matrices(); 
+     int len = current_host->len; 
+     // checking temp1 FROM temp2 
+     return (bool)( (current_host ->in_matrix)[temp1 * len + temp2]); 
+ } 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 2 ---- 
+class SIMPLE_LIST_17_18_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_17_18_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Alice_source = Root_table[Event_Alice]; // source of coordination 
+  int n_variable; // thread variable
+  vector<int> n_variable_list; // list of coordinated events
+  int  Network_source = Root_table[Event_Network]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Alice_source ]){ 
+       if( (  (Stack[i]->name == Event_sends_password_to_Bob))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for n_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      n_variable = i; 
+      if( n_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[n_variable_list.size()];}; 
+      if(in_matrix[i * len +  Network_source ]){ 
+       if( (  (Stack[i]->name == Event_message_in_transit))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = n_variable_list.begin(); s != n_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) n_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source n_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = n_variable_list.size();
+  if(thread_length != n_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    n_variable= n_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(n_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_17_18_ob class
+
+//---- 3 ---- 
+class SIMPLE_LIST_33_34_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_33_34_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int n_variable; // thread variable
+  vector<int> n_variable_list; // list of coordinated events
+  int  Network_source = Root_table[Event_Network]; // source of coordination 
+  int e_variable; // thread variable
+  vector<int> e_variable_list; // list of coordinated events
+  int  Eve_source = Root_table[Event_Eve]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for n_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      n_variable = i; 
+      if( n_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Network_source ]){ 
+       if( (  (Stack[i]->name == Event_message_in_transit))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = n_variable_list.begin(); s != n_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) n_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source n_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = n_variable_list.size();
+  if(thread_length != n_variable_list.size()) throw failed;
+
+  // preparing thread for e_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e_variable = i; 
+      if( e_variable_list.size() == thread_length){
+         n_variable = 0; } 
+      else{ 
+         n_variable = n_variable_list[e_variable_list.size()];}; 
+      if(in_matrix[i * len +  Eve_source ]){ 
+       if( (  (Stack[i]->name == Event_eavesesdrops_message))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e_variable_list.begin(); s != e_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e_variable_list.size();
+  if(thread_length != e_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    n_variable= n_variable_list[i];
+    e_variable= e_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(e_variable,n_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_33_34_ob class
+
+//---- 4 ---- 
+class SIMPLE_LIST_67_68_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_67_68_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a1_variable; // thread variable
+  vector<int> a1_variable_list; // list of coordinated events
+  int  Bob_source = Root_table[Event_Bob]; // source of coordination 
+  int r1_variable; // thread variable
+  vector<int> r1_variable_list; // list of coordinated events
+  int  Alice_source = Root_table[Event_Alice]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a1_variable = i; 
+      if( a1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Bob_source ]){ 
+       if( (  (Stack[i]->name == Event_requests_password_from_Alice))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a1_variable_list.begin(); s != a1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a1_variable_list.size();
+  if(thread_length != a1_variable_list.size()) throw failed;
+
+  // preparing thread for r1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      r1_variable = i; 
+      if( r1_variable_list.size() == thread_length){
+         a1_variable = 0; } 
+      else{ 
+         a1_variable = a1_variable_list[r1_variable_list.size()];}; 
+      if(in_matrix[i * len +  Alice_source ]){ 
+       if( (  (Stack[i]->name == Event_sends_password_to_Bob))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = r1_variable_list.begin(); s != r1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) r1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source r1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = r1_variable_list.size();
+  if(thread_length != r1_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a1_variable= a1_variable_list[i];
+    r1_variable= r1_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(r1_variable,a1_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int n_variable; // thread variable
+  vector<int> n_variable_list; // list of coordinated events
+  int  Network_source = Root_table[Event_Network]; // source of coordination 
+  int b_variable; // thread variable
+  vector<int> b_variable_list; // list of coordinated events
+  int  Bob_source = Root_table[Event_Bob]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for n_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      n_variable = i; 
+      if( n_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Network_source ]){ 
+       if( (  (Stack[i]->name == Event_message_in_transit))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = n_variable_list.begin(); s != n_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) n_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source n_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = n_variable_list.size();
+  if(thread_length != n_variable_list.size()) throw failed;
+
+  // preparing thread for b_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b_variable = i; 
+      if( b_variable_list.size() == thread_length){
+         n_variable = 0; } 
+      else{ 
+         n_variable = n_variable_list[b_variable_list.size()];}; 
+      if(in_matrix[i * len +  Bob_source ]){ 
+       if( (  (Stack[i]->name == Event_receives_password_from_Alice))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b_variable_list.begin(); s != b_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b_variable_list.size();
+  if(thread_length != b_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    n_variable= n_variable_list[i];
+    b_variable= b_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(b_variable,n_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  Bob_source = Root_table[Event_Bob]; // source of coordination 
+  int p_variable; // thread variable
+  vector<int> p_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  Bob_source ]){ 
+       if( (  (Stack[i]->name == Event_asks_for_password))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // preparing thread for p_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      p_variable = i; 
+      if( p_variable_list.size() == thread_length){
+         a_variable = 0; } 
+      else{ 
+         a_variable = a_variable_list[p_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_presents_Alice_password))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = p_variable_list.begin(); s != p_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) p_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source p_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = p_variable_list.size();
+  if(thread_length != p_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    p_variable= p_variable_list[i];
+    // ADD operation 
+    Follows.insert(pair<int, int>(p_variable,a_variable));
+    create_matrices();// to check for axiom violation 
+      // since relation table was modified 
+    timing_is_up_to_date = false; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int t1_variable; // thread variable
+  vector<int> t1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int t2_variable; // thread variable
+  vector<int> t2_variable_list; // list of coordinated events
+  int  Bob_source = Root_table[Event_Bob]; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for t1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      t1_variable = i; 
+      if( t1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_talks)) && ! Event_comparison_expr_61_62 
+(current_host, t1_variable , Root_table[Event_Bob] )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = t1_variable_list.begin(); s != t1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) t1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source t1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = t1_variable_list.size();
+  if(thread_length != t1_variable_list.size()) throw failed;
+
+  // preparing thread for t2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      t2_variable = i; 
+      if( t2_variable_list.size() == thread_length){
+         t1_variable = 0; } 
+      else{ 
+         t1_variable = t1_variable_list[t2_variable_list.size()];}; 
+      if(in_matrix[i * len +  Bob_source ]){ 
+       if( (  (Stack[i]->name == Event_talks))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = t2_variable_list.begin(); s != t2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) t2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source t2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = t2_variable_list.size();
+  if(thread_length != t2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    t1_variable= t1_variable_list[i];
+    t2_variable= t2_variable_list[i];
+    // SHARE_clause , throws failed exception if cannot complete 
+    make_equality_complete( t1_variable , t2_variable ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_67_68_ob class
+
+//---- 5 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_presents_Alice_password); 
+      element[ 1 ]=  new Atomic_producer(Event_talks); 
+    } 
+};// end class Sq_1_2 
+
+//---- 6 ---- 
+class Ct_69_70 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_69_70 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+    } 
+};// end class Ct_69_70 
+
+//---- 7 ---- 
+class Ct_71_72 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_71_72 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      element[ 2 ]=  new Sq_1_2 ; 
+    } 
+};// end class Ct_71_72 
+
+//---- 8 ---- 
+class Itr_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Sq_1_2 ; 
+      element[ 2 ]=  new Ct_69_70 ; 
+      element[ 3 ]=  new Ct_71_72 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.500000E-01; 
+      alternative_probability[ 1 ]=  2.500000E-01; 
+      alternative_probability[ 2 ]=  2.500000E-01; 
+      alternative_probability[ 3 ]=  2.500000E-01; 
+    } 
+};// end class Itr_3_4 
+
+//---- 9 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_sends_password_to_Bob); 
+      element[ 1 ]=  new Itr_3_4 ; 
+    } 
+};// end class Sq_5_6 
+
+//---- 10 ---- 
+class Sq_19_20 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_19_20 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_presents_Alice_password); 
+      element[ 1 ]=  new Atomic_producer(Event_talks); 
+    } 
+};// end class Sq_19_20 
+
+//---- 11 ---- 
+class Ct_73_74 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_73_74 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_19_20 ; 
+      element[ 1 ]=  new Sq_19_20 ; 
+    } 
+};// end class Ct_73_74 
+
+//---- 12 ---- 
+class Ct_75_76 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_75_76 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_19_20 ; 
+      element[ 1 ]=  new Sq_19_20 ; 
+      element[ 2 ]=  new Sq_19_20 ; 
+    } 
+};// end class Ct_75_76 
+
+//---- 13 ---- 
+class Itp_21_22 : public OR_node_producer_container { 
+public: // constructor 
+    Itp_21_22 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_19_20 ; 
+      element[ 1 ]=  new Ct_73_74 ; 
+      element[ 2 ]=  new Ct_75_76 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  3.333333E-01; 
+      alternative_probability[ 1 ]=  3.333333E-01; 
+      alternative_probability[ 2 ]=  3.333333E-01; 
+    } 
+};// end class Itp_21_22 
+
+//---- 14 ---- 
+class Sq_23_24 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_23_24 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_eavesesdrops_message); 
+      element[ 1 ]=  new Itp_21_22 ; 
+    } 
+};// end class Sq_23_24 
+
+//---- 15 ---- 
+class Sq_35_36 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_35_36 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_asks_for_password); 
+      element[ 1 ]=  new Atomic_producer(Event_talks); 
+    } 
+};// end class Sq_35_36 
+
+//---- 16 ---- 
+class Ct_77_78 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_77_78 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_77_78 
+
+//---- 17 ---- 
+class Ct_79_80 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_79_80 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      element[ 2 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_79_80 
+
+//---- 18 ---- 
+class Ct_81_82 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_81_82 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      element[ 2 ]=  new Sq_35_36 ; 
+      element[ 3 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_81_82 
+
+//---- 19 ---- 
+class Ct_83_84 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_83_84 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 5 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      element[ 2 ]=  new Sq_35_36 ; 
+      element[ 3 ]=  new Sq_35_36 ; 
+      element[ 4 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_83_84 
+
+//---- 20 ---- 
+class Ct_85_86 : public AND_node_producer_container { 
+public: // constructor 
+    Ct_85_86 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 6 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Sq_35_36 ; 
+      element[ 2 ]=  new Sq_35_36 ; 
+      element[ 3 ]=  new Sq_35_36 ; 
+      element[ 4 ]=  new Sq_35_36 ; 
+      element[ 5 ]=  new Sq_35_36 ; 
+    } 
+};// end class Ct_85_86 
+
+//---- 21 ---- 
+class Itr_37_38 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_37_38 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 6 ]; 
+      element[ 0 ]=  new Sq_35_36 ; 
+      element[ 1 ]=  new Ct_77_78 ; 
+      element[ 2 ]=  new Ct_79_80 ; 
+      element[ 3 ]=  new Ct_81_82 ; 
+      element[ 4 ]=  new Ct_83_84 ; 
+      element[ 5 ]=  new Ct_85_86 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  1.666667E-01; 
+      alternative_probability[ 1 ]=  1.666667E-01; 
+      alternative_probability[ 2 ]=  1.666667E-01; 
+      alternative_probability[ 3 ]=  1.666667E-01; 
+      alternative_probability[ 4 ]=  1.666667E-01; 
+      alternative_probability[ 5 ]=  1.666667E-01; 
+    } 
+};// end class Itr_37_38 
+
+//---- 22 ---- 
+class Sq_39_40 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_39_40 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_requests_password_from_Alice); 
+      element[ 1 ]=  new Atomic_producer(Event_receives_password_from_Alice); 
+      element[ 2 ]=  new Itr_37_38 ; 
+    } 
+};// end class Sq_39_40 
+
+//---- 23 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_Alice){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 24 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Network){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_message_in_transit); 
+    } 
+};// end class Comp_9_10 
+
+//---- 25 ---- 
+class Comp_25_26 : public Composite_producer { 
+public: // constructor 
+    Comp_25_26 (): Composite_producer(Event_Eve){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_23_24 ; 
+    } 
+};// end class Comp_25_26 
+
+//---- 26 ---- 
+class Comp_41_42 : public Composite_producer { 
+public: // constructor 
+    Comp_41_42 (): Composite_producer(Event_Bob){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_39_40 ; 
+    } 
+};// end class Comp_41_42 
+
+//---- 27 ---- 
+class SCHEMA_Replay_Attack: public Composite_producer {
+public: // constructor 
+    SCHEMA_Replay_Attack(): Composite_producer(Event_Replay_Attack){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 7 ]; 
+      element[0]= new Composite_secondary_producer(Event_Alice);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Network);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_17_18_ob(Event_SIMPLE_LIST_17_18);
+      element[3]= new Composite_secondary_producer(Event_Eve);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[3] -> type = ROOT_node; 
+      element[4]= new SIMPLE_LIST_33_34_ob(Event_SIMPLE_LIST_33_34);
+      element[5]= new Composite_secondary_producer(Event_Bob);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[5] -> type = ROOT_node; 
+      element[6]= new SIMPLE_LIST_67_68_ob(Event_SIMPLE_LIST_67_68);
+    } 
+};// end class SCHEMA_Replay_Attack
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example41_Replay_Attack.json");
+   global_flag = false;
+  // add tab names to table objects 
+  // add tab names to chart objects 
+   cout<< "generating traces for scope 3 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_7_8 temp_28; temp_28.harvest();
+    Comp_9_10 temp_29; temp_29.harvest();
+    Comp_25_26 temp_30; temp_30.harvest();
+    Comp_41_42 temp_31; temp_31.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Replay_Attack temp_32; temp_32.harvest();
+   temp_32.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Replay_Attack"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.mp
new file mode 100644
index 0000000..5749bbe
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.mp
@@ -0,0 +1,63 @@
+/* 	Example 41. The description of Replay Attack
+	is available at 
+	https://en.wikipedia.org/wiki/Replay_attack
+
+    run scope up to 5
+======================================*/
+
+SCHEMA Replay_Attack
+
+ROOT Alice:
+	sends_password_to_Bob 
+	
+	(* 	presents_Alice_password 
+    	talks 			*)
+;
+
+/*---------------------------------------*/
+ROOT Network:
+	message_in_transit
+;
+
+COORDINATE 	$a: sends_password_to_Bob 	FROM Alice,
+			$n: message_in_transit 		FROM Network
+	DO ADD $a PRECEDES $n; OD;
+
+/*---------------------------------------*/
+/* Eavesdropper */
+ROOT Eve:
+	eavesesdrops_message
+	(+ 	presents_Alice_password 
+    	talks 			+)
+;
+
+COORDINATE 	$n: message_in_transit 		FROM Network,
+			$e: eavesesdrops_message 	FROM Eve
+	DO ADD $n PRECEDES $e; OD; 
+
+/*---------------------------------------*/
+
+ROOT Bob:
+	requests_password_from_Alice
+	receives_password_from_Alice
+	
+	(*<1.. 2 * $$scope>	asks_for_password
+        talks *)
+;
+
+COORDINATE 	$a1: requests_password_from_Alice 	FROM Bob,
+			$r1: sends_password_to_Bob 			FROM Alice
+	DO ADD $a1 PRECEDES  $r1; OD;
+
+COORDINATE 	$n: message_in_transit 				FROM Network,
+			$b: receives_password_from_Alice 	FROM Bob
+	DO ADD $n PRECEDES $b; OD;
+
+COORDINATE 	$a: asks_for_password FROM Bob,
+			$p: presents_Alice_password /* not necessary to give the FROM owner, 
+            							just the event name is sufficient */
+	DO ADD $a PRECEDES $p; OD;
+
+COORDINATE 	$t1: talks SUCH THAT NOT $t1 FROM Bob,
+			$t2: talks FROM Bob
+	DO SHARE $t1 $t2;  OD;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp.txt
new file mode 100644
index 0000000..9c275b0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example41_Replay_Attack tree 3
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.tree
new file mode 100644
index 0000000000000000000000000000000000000000..43cc53fc56b25e0c20da5b7af8b8eeef65a0ede8
GIT binary patch
literal 12288
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
Y{O+)$Pk7rv-}=7ZzU>I4|I6e59|PcMLjV8(

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.txt
new file mode 100644
index 0000000..e2d7a66
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example41_Replay_Attack.txt
@@ -0,0 +1,17 @@
+generating traces for scope 3 
+completed Alice: 	4 traces (0 MARKed) 	20 events 
+		average 5 ev/trace 	min 2 	max 8
+
+completed Network: 	1 traces (0 MARKed) 	2 events 
+
+completed Eve: 	3 traces (0 MARKed) 	18 events 
+		average 6 ev/trace 	min 4 	max 8
+
+completed Bob: 	6 traces (0 MARKed) 	60 events 
+		average 10 ev/trace 	min 5 	max 15
+
+completed Replay_Attack: 	12 traces (0 MARKed) 	288 events 
+		average 24 ev/trace 	min 14 	max 34
+
+Elapsed time 0.063658 sec, Speed: 6095.07 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.cpp
new file mode 100644
index 0000000..d5363d4
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.cpp
@@ -0,0 +1,409 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Example trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > count_number_attribute;
+//-- node attributes -- 
+       map<int,  float > NODE_count_number_attribute;
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( count_number_attribute[event1] != count_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    count_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("count",count_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+class tuple_type_TABLE_7_trace_stats{ public: 
+  string tab_event_name;
+  float tab_total_number;
+  tuple_type_TABLE_7_trace_stats(){
+    tab_event_name= "";
+    tab_total_number= 0;}; 
+}; 
+table_object TABLE_7_trace_stats;
+chart_object CHART_10_chart_states;
+graph_object GRAPH_13_event_counters;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_a
+    , Event_b
+    , Event_c
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_14_15
+    , Event_SIMPLE_LIST_36_37
+       // ADD operations 
+       // ROOT events 
+    , Event_A
+       // main schema event 
+    , Event_Example }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "a"
+     , "b"
+     , "c"
+     , "SIMPLE_LIST_14_15"
+     , "SIMPLE_LIST_36_37"
+     , "A"
+     , "Example" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_14_15_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_14_15_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+    { // trace_stats title generation 
+     ostringstream convert; 
+     convert <<"Trace ";
+     convert << 
+       trace_id_attribute ; 
+     TABLE_7_trace_stats.title = convert.str();}
+    { // chart_states title generation 
+     ostringstream convert; 
+     convert <<"Trace ";
+     convert << 
+       trace_id_attribute ; 
+     convert <<" chart";
+     CHART_10_chart_states.title = convert.str();}
+    { // event_counters title generation 
+     ostringstream convert; 
+     convert <<" ";
+     GRAPH_13_event_counters.title = convert.str();}
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_14_15_ob class
+
+//---- 2 ---- 
+class SIMPLE_LIST_36_37_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_36_37_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+   // WITHIN event_counters 
+   int a_16_node_var = -1; 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e_variable; // thread variable
+  vector<int> e_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e_variable = i; 
+      if( e_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == Atom || Stack[i]->type == ROOT_node || 
+Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e_variable_list.begin(); s != e_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e_variable_list.size();
+  if(thread_length != e_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e_variable= e_variable_list[i];
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ e_variable ]->name]; 
+    a_16_node_var = GRAPH_13_event_counters.find_or_create_new_node(convert.str());}
+   // attribute count assignment 
+    NODE_count_number_attribute[a_16_node_var]+=1 ; 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+  // loop_over_graph for GRAPH_13_event_counters 
+  { // loop over graph GRAPH_13_event_counters 
+    int n_24_node_var ; 
+    int end_limit_1 = GRAPH_13_event_counters .nodes.size(); 
+    for(int temp = 0; temp < end_limit_1 ; temp++){ 
+     n_24_node_var = temp; 
+    { // add tuple to table trace_stats 
+      tuple_type_TABLE_7_trace_stats temp;
+     { // string tab assignment 
+     ostringstream convert; 
+     if( n_24_node_var >= 0 && n_24_node_var < GRAPH_13_event_counters 
+.nodes.size()) 
+       convert << GRAPH_13_event_counters .nodes[ n_24_node_var ]; 
+     else convert << "Undefined node"; 
+      temp.tab_event_name= convert.str();}
+      temp.tab_total_number= 
+       NODE_count_number_attribute[n_24_node_var] ; 
+      ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_total_number; comma= 44; 
+      TABLE_7_trace_stats.table_rows.push_back(row.str());
+     // add tab strings for charts in table trace_stats 
+       // add string to chart chart_states 
+      { ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_total_number; comma= 44; 
+      CHART_10_chart_states.chart_rows.push_back(row.str()); } // end adding to chart chart_states
+    } // end of add tuple 
+   } } // end GRAPH_13_event_counters loop 
+    // SHOW trace_stats 
+    table_container.insert(pair<int, table_object>( 2,TABLE_7_trace_stats));
+    // SHOW chart_states 
+    chart_container.insert(pair<int, chart_object>( 3,CHART_10_chart_states));
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_36_37_ob class
+
+//---- 3 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a); 
+      element[ 1 ]=  new Atomic_producer(Event_b); 
+      element[ 2 ]=  new Atomic_producer(Event_c); 
+      element[ 3 ]=  new Atomic_producer(Event_a); 
+    } 
+};// end class Sq_1_2 
+
+//---- 4 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 5 ---- 
+class SCHEMA_Example: public Composite_producer {
+public: // constructor 
+    SCHEMA_Example(): Composite_producer(Event_Example){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new SIMPLE_LIST_14_15_ob(Event_SIMPLE_LIST_14_15);
+      element[2]= new SIMPLE_LIST_36_37_ob(Event_SIMPLE_LIST_36_37);
+    } 
+};// end class SCHEMA_Example
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example42_Bar_Chart.json");
+   global_flag = false;
+  // add tab names to table objects 
+   TABLE_7_trace_stats.tab_names.push_back("event_name");
+   TABLE_7_trace_stats.tab_names.push_back("total_number");
+  // add tab names to chart objects 
+   // bar chart for table trace_stats 
+   CHART_10_chart_states.x_axis_tab_name= "event_name";
+   CHART_10_chart_states.tab_names.push_back("event_name");
+   CHART_10_chart_states.tab_names.push_back("total_number");
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_6; temp_6.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Example temp_7; temp_7.harvest();
+   temp_7.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Example"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.mp
new file mode 100644
index 0000000..dade7ed
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.mp
@@ -0,0 +1,53 @@
+/*
+ Example42
+ Assembling statistics about a current trace in a TABLE and rendering it.
+ Table and bar chart example, run for scope 1
+*/
+
+SCHEMA Example
+ROOT A: a b c a;
+
+TABLE trace_stats {
+	TITLE ("Trace " trace_id);
+TABS 	string event_name, 
+number total_number;
+};
+
+BAR CHART chart_states {
+	TITLE( "Trace " trace_id " chart"); 
+	FROM trace_stats; 
+/* contents of the  bar chart is derived from 
+	the table trace_stats */
+	X_AXIS event_name;
+};
+
+GRAPH event_counters { };
+/* This graph container is used as an associative array 
+	data structure to accumulate event count 
+    for each event in the trace via node attributes */ 
+ATTRIBUTES {number count;};
+
+/* Collect event data and store it in the graph container */
+WITHIN event_counters{
+	COORDINATE $e: $$EVENT 	/* loop over all events within the trace */
+		DO 	Node$a: LAST ($e); 
+			Node$a.count +:=1; /* increment node’s attribute value */
+  		OD;
+	/* Second loop - now fill the table, see loop_over_graph (105) */ 
+	FOR Node$n /* variable Node$n is traversing event_counters node set */
+		DO	
+			trace_stats <| /* store tuple in the table trace_stats */
+				event_name :	SAY(Node$n), 
+					/* here (Node$n) is a string_constructor(87) 
+						converting node’s name (label) into a character string   */ 
+				total_number: 	 Node$n.count 		; 		 			
+		OD;
+}; /* end WITHIN */
+
+SHOW trace_stats;
+SHOW chart_states;
+/* contents of the related table provides data source for the bar chart */
+
+
+
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp.txt
new file mode 100644
index 0000000..6b5c7c4
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example42_Bar_Chart tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.tree
new file mode 100644
index 0000000000000000000000000000000000000000..daf645817055f6266804c5b2fad87a9165329862
GIT binary patch
literal 6656
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
a{Qj9kSPMpZc6VA}bkpsN#O;4O|NjOT{9*0@

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.txt
new file mode 100644
index 0000000..b5117e9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example42_Bar_Chart.txt
@@ -0,0 +1,7 @@
+generating traces for scope 1 
+completed A: 	1 traces (0 MARKed) 	5 events 
+
+completed Example: 	1 traces (0 MARKed) 	6 events 
+
+Elapsed time 0.000216 sec, Speed: 50925.9 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.cpp
new file mode 100644
index 0000000..82a347a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.cpp
@@ -0,0 +1,373 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Example trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+       map<int,  float > count_number_attribute;
+//-- node attributes -- 
+       map<int,  float > NODE_count_number_attribute;
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  if( count_number_attribute[event1] != count_number_attribute[event2]) 
+    return false; 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+    float t_10_num_var ; 
+    float n_11_num_var ; 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    count_number_attribute.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!count_number_attribute.empty())
+    number_attr_container.insert(pair<string, map<int, float> >("count",count_number_attribute));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+    
+    if(p1_num_attr->first == "count"){
+      for(p_float = (p1_num_attr->second).begin(); 
+          p_float != (p1_num_attr->second).end(); p_float++) 
+         count_number_attribute.insert(pair<int, float>(p_float->first + base, p_float->second));}
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+graph_object GRAPH_9_Data;
+
+class tuple_type_TABLE_31_probability_histogram{ public: 
+  string tab_probability_interval;
+  float tab_trace_count;
+  tuple_type_TABLE_31_probability_histogram(){
+    tab_probability_interval= "";
+    tab_trace_count= 0;}; 
+}; 
+table_object TABLE_31_probability_histogram;
+chart_object CHART_34_probability_chart;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_a1
+    , Event_a2
+    , Event_a3
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+       // ADD operations 
+       // ROOT events 
+    , Event_A
+       // main schema event 
+    , Event_Example }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "a1"
+     , "a2"
+     , "a3"
+     , "A"
+     , "Example" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class Itr_1_2 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_1_2 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_a3); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_1_2 
+
+//---- 2 ---- 
+class Alt_3_4 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_3_4 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a1); 
+      element[ 1 ]=  new Atomic_producer(Event_a2); 
+      element[ 2 ]=  new Itr_1_2 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  2.000000E-01; 
+      alternative_probability[ 1 ]=  3.000000E-01; 
+      alternative_probability[ 2 ]=  5.000000E-01; 
+    } 
+};// end class Alt_3_4 
+
+//---- 3 ---- 
+class Comp_5_6 : public Composite_producer { 
+public: // constructor 
+    Comp_5_6 (): Composite_producer(Event_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Alt_3_4 ; 
+    } 
+};// end class Comp_5_6 
+
+//---- 4 ---- 
+class SCHEMA_Example: public Composite_producer {
+public: // constructor 
+    SCHEMA_Example(): Composite_producer(Event_Example){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[0]= new Composite_secondary_producer(Event_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+    } 
+};// end class SCHEMA_Example
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+    { // Data title generation 
+     ostringstream convert; 
+     convert <<" ";
+     GRAPH_9_Data.title = convert.str();}
+   // WITHIN Data 
+   int x_12_node_var = -1; 
+    // FOR_loop 
+    Interval temp_FOR_loop_25 ( Interval(1 ,total_segments )); 
+    t_10_num_var = temp_FOR_loop_25 .smallest; 
+    float temp_FOR_loop_25_upper= temp_FOR_loop_25.largest;
+    while( t_10_num_var <= temp_FOR_loop_25_upper){
+    // FOR_loop 
+    Interval temp_FOR_loop_22 ( Interval(0 ,1 )); 
+    n_11_num_var = temp_FOR_loop_22 .smallest; 
+    float temp_FOR_loop_22_upper= temp_FOR_loop_22.largest;
+    while( n_11_num_var <= temp_FOR_loop_22_upper){
+   {// LAST_NODE 
+     ostringstream convert; 
+     convert <<"[";
+     convert << n_11_num_var ; 
+     convert <<"..";
+     convert << ( n_11_num_var + 1.000000E-01); 
+     convert <<")";
+    x_12_node_var = GRAPH_9_Data.find_or_create_new_node(convert.str());}
+   if( ( ( ( n_11_num_var <= get_trace_probability(m, (int) t_10_num_var ) )&& (
+ get_trace_probability(m, (int) t_10_num_var ) < ( n_11_num_var + 1.000000E-01)))
+|| ( ( total_segments == 1 )&& ( n_11_num_var == 9.000000E-01)))){ 
+   // attribute count assignment 
+    NODE_count_number_attribute[x_12_node_var]+=1 ; 
+   }// end THEN 
+    n_11_num_var += 1.000000E-01; }; 
+    // end FOR_loop 
+    t_10_num_var += 1 ; }; 
+    // end FOR_loop 
+    { // probability_histogram title generation 
+     ostringstream convert; 
+     convert <<" ";
+     TABLE_31_probability_histogram.title = convert.str();}
+    { // probability_chart title generation 
+     ostringstream convert; 
+     convert <<"Trace probabilities";
+     CHART_34_probability_chart.title = convert.str();}
+   // WITHIN Data 
+  // loop_over_graph for GRAPH_9_Data 
+  { // loop over graph GRAPH_9_Data 
+    int n_35_node_var ; 
+    int end_limit_1 = GRAPH_9_Data .nodes.size(); 
+    for(int temp = 0; temp < end_limit_1 ; temp++){ 
+     n_35_node_var = temp; 
+    { // add tuple to table probability_histogram 
+      tuple_type_TABLE_31_probability_histogram temp;
+     { // string tab assignment 
+     ostringstream convert; 
+     if( n_35_node_var >= 0 && n_35_node_var < GRAPH_9_Data .nodes.size()) 
+       convert << GRAPH_9_Data .nodes[ n_35_node_var ]; 
+     else convert << "Undefined node"; 
+      temp.tab_probability_interval= convert.str();}
+      temp.tab_trace_count= 
+       NODE_count_number_attribute[n_35_node_var] ; 
+      ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_probability_interval<<"\""; comma= 44; 
+      row << comma << temp.tab_trace_count; comma= 44; 
+      TABLE_31_probability_histogram.table_rows.push_back(row.str());
+     // add tab strings for charts in table probability_histogram 
+       // add string to chart probability_chart 
+      { ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_probability_interval<<"\""; comma= 44; 
+      row << comma << temp.tab_trace_count; comma= 44; 
+      CHART_34_probability_chart.chart_rows.push_back(row.str()); } // end adding to chart probability_chart
+    } // end of add tuple 
+   } } // end GRAPH_9_Data loop 
+    // SHOW probability_chart 
+    // sort it by X_AXIS before printing 
+    sort( CHART_34_probability_chart.chart_rows.begin(),CHART_34_probability_chart.chart_rows.end());
+    chart_container.insert(pair<int, chart_object>( 2,CHART_34_probability_chart));
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example43_Histogram.json");
+   global_flag = true;
+  // add tab names to table objects 
+   TABLE_31_probability_histogram.tab_names.push_back("probability_interval");
+   TABLE_31_probability_histogram.tab_names.push_back("trace_count");
+  // add tab names to chart objects 
+   // bar chart for table probability_histogram 
+   CHART_34_probability_chart.x_axis_tab_name= "probability_interval";
+   CHART_34_probability_chart.tab_names.push_back("probability_interval");
+   CHART_34_probability_chart.tab_names.push_back("trace_count");
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_5_6 temp_5; temp_5.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Example temp_6; temp_6.harvest();
+   temp_6.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Example"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.mp
new file mode 100644
index 0000000..c40bdfa
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.mp
@@ -0,0 +1,48 @@
+/*	Example 43
+ Histogram example, run for scopes 1, 2, 3, and up
+*/
+SCHEMA Example
+ROOT A: (<<0.2>> a1 | <<0.3>> a2 | (* a3 *));
+ATTRIBUTES { number count; };
+
+GLOBAL
+/* This GRAPH is used as a container to collect data about valid trace probabilities.
+    The following MP code can be reused for any MP model just by Copy/Paste.    */
+GRAPH Data { };
+
+WITHIN Data{
+    /* numerical_loop_header(40) is used to perform required interval calculations. */ 
+    FOR Num$t: [1.. #$$TRACE] STEP 1 
+        DO FOR Num$n: [0 .. 1] STEP 0.1
+              DO
+                    Node$x: LAST("[" Num$n ".." Num$n + 0.1 ")");        
+                 /*  p - pre-defined trace probability attribute */
+                    IF  ( Num$n <= #$$TP(Num$t) AND 
+                          #$$TP(Num$t) < Num$n + 0.1) OR
+        /* special case when the only single trace with probability 1 exists */ 
+                        ( #$$TRACE == 1 AND Num$n == 0.9 ) THEN 
+                     Node$x.count +:= 1;
+                    FI; 
+              OD;
+        OD;  
+}; /* end of WITHIN Data */
+
+TABLE probability_histogram {
+TABS string     probability_interval,
+        number     trace_count; };
+
+BAR CHART probability_chart { TITLE("Trace probabilities");
+                              FROM     probability_histogram;
+                              X_AXIS probability_interval; };
+WITHIN Data{
+    FOR Node$n
+        DO probability_histogram     <| 
+                 probability_interval:     SAY(Node$n),
+                 trace_count:              Node$n.count;                                                     
+        OD;
+};
+
+SHOW probability_chart SORT;
+/* The contents of the chart is sorted by X_AXIS string values, since the order of adding rows to the
+    TABLE may be arbitrary */
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp.txt
new file mode 100644
index 0000000..a916609
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example43_Histogram tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.tree
new file mode 100644
index 0000000000000000000000000000000000000000..df9c572f728d444b77cc27c0973a0d8fdc774b84
GIT binary patch
literal 8704
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
IVwU{>2eR?zO#lD@

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.txt
new file mode 100644
index 0000000..642efb6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example43_Histogram.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed A: 	4 traces (0 MARKed) 	7 events 
+		average 1.75 ev/trace 	min 1 	max 2
+
+completed Example: 	4 traces (0 MARKed) 	11 events 
+		average 2.75 ev/trace 	min 2 	max 3
+
+Elapsed time 0.000278 sec, Speed: 64748.2 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.cpp
new file mode 100644
index 0000000..094815a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.cpp
@@ -0,0 +1,558 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA S trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+} 
+
+//***** VIEW object containers ***** 
+
+class tuple_type_TABLE_25_gantt_1{ public: 
+  string tab_event_name;
+  float tab_start_time;
+  float tab_duration_time;
+  tuple_type_TABLE_25_gantt_1(){
+    tab_event_name= "";
+    tab_start_time= 0;
+    tab_duration_time= 0;}; 
+}; 
+table_object TABLE_25_gantt_1;
+chart_object CHART_28_gantt_2;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_a1
+    , Event_a2
+    , Event_b1
+    , Event_b2
+       // composite events 
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_36_37
+       // ADD operations 
+       // ROOT events 
+    , Event_A
+    , Event_B
+       // main schema event 
+    , Event_S }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "a1"
+     , "a2"
+     , "b1"
+     , "b2"
+     , "SIMPLE_LIST_36_37"
+     , "A"
+     , "B"
+     , "S" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 1 ---- 
+class SIMPLE_LIST_36_37_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_36_37_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int A_source = Root_table[Event_A];
+   // lists of shared events for  A 
+  vector<int> A_a2_list;
+
+  int B_source = Root_table[Event_B];
+   // lists of shared events for  B 
+  vector<int> B_a2_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + A_source ]){ 
+     if( Stack[i]->name == Event_a2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  A_a2_list.begin();
+          s != A_a2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) A_a2_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + B_source ]){ 
+     if( Stack[i]->name == Event_a2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  B_a2_list.begin();
+          s != B_a2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) B_a2_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = B_a2_list.size();
+     if(A_a2_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = B_a2_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(A_a2_list[i], B_a2_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a1_variable; // thread variable
+  vector<int> a1_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+  int a2_variable; // thread variable
+  vector<int> a2_variable_list; // list of coordinated events
+  int b1_variable; // thread variable
+  vector<int> b1_variable_list; // list of coordinated events
+  int b2_variable; // thread variable
+  vector<int> b2_variable_list; // list of coordinated events
+
+  // create lists of coordinated events 
+  // preparing thread for a1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a1_variable = i; 
+      if( a1_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_a1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a1_variable_list.begin(); s != a1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a1_variable_list.size();
+  if(thread_length != a1_variable_list.size()) throw failed;
+
+  // preparing thread for a2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a2_variable = i; 
+      if( a2_variable_list.size() == thread_length){
+         a1_variable = 0; } 
+      else{ 
+         a1_variable = a1_variable_list[a2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_a2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a2_variable_list.begin(); s != a2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a2_variable_list.size();
+  if(thread_length != a2_variable_list.size()) throw failed;
+
+  // preparing thread for b1_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b1_variable = i; 
+      if( b1_variable_list.size() == thread_length){
+         a1_variable = 0; 
+         a2_variable = 0; } 
+      else{ 
+         a1_variable = a1_variable_list[b1_variable_list.size()];
+         a2_variable = a2_variable_list[b1_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_b1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b1_variable_list.begin(); s != b1_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b1_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b1_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b1_variable_list.size();
+  if(thread_length != b1_variable_list.size()) throw failed;
+
+  // preparing thread for b2_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      b2_variable = i; 
+      if( b2_variable_list.size() == thread_length){
+         a1_variable = 0; 
+         a2_variable = 0; 
+         b1_variable = 0; } 
+      else{ 
+         a1_variable = a1_variable_list[b2_variable_list.size()];
+         a2_variable = a2_variable_list[b2_variable_list.size()];
+         b1_variable = b1_variable_list[b2_variable_list.size()];}; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_b2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = b2_variable_list.begin(); s != b2_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) b2_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source b2_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = b2_variable_list.size();
+  if(thread_length != b2_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a1_variable= a1_variable_list[i];
+    a2_variable= a2_variable_list[i];
+    b1_variable= b1_variable_list[i];
+    b2_variable= b2_variable_list[i];
+    SET_duration(a1_variable,3 ); 
+    SET_duration(a2_variable,5 ); 
+    SET_duration(b1_variable,1 ); 
+    SET_duration(b2_variable,2 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    { // gantt_1 title generation 
+     ostringstream convert; 
+     convert <<" ";
+     TABLE_25_gantt_1.title = convert.str();}
+    { // gantt_2 title generation 
+     ostringstream convert; 
+     convert <<"Example of Gantt Chart";
+     CHART_28_gantt_2.title = convert.str();}
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int e_variable; // thread variable
+  vector<int> e_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for e_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      e_variable = i; 
+      if( e_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( ( (Stack[i]->type == Atom || Stack[i]->type == ROOT_node || 
+Stack[i]->type == Composite_event_instance_node) )  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = e_variable_list.begin(); s != e_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) e_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source e_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = e_variable_list.size();
+  if(thread_length != e_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    e_variable= e_variable_list[i];
+    { // add tuple to table gantt_1 
+      tuple_type_TABLE_25_gantt_1 temp;
+     { // string tab assignment 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ e_variable ]->name]; 
+      temp.tab_event_name= convert.str();}
+      temp.tab_start_time= (recalculate_timing_attributes(), 
+       time_start_attributes[e_variable] .smallest) ; 
+      temp.tab_duration_time= (recalculate_timing_attributes(), 
+       time_duration_attributes[e_variable] .largest) ; 
+      ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_start_time; comma= 44; 
+      row << comma << temp.tab_duration_time; comma= 44; 
+      TABLE_25_gantt_1.table_rows.push_back(row.str());
+     // add tab strings for charts in table gantt_1 
+       // add string to chart gantt_2 
+      { ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_start_time; comma= 44; 
+      row << comma << temp.tab_duration_time; comma= 44; 
+      CHART_28_gantt_2.chart_rows.push_back(row.str()); } // end adding to chart gantt_2
+    } // end of add tuple 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    // SHOW gantt_2 
+    chart_container.insert(pair<int, chart_object>( 1,CHART_28_gantt_2));
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_36_37_ob class
+
+//---- 2 ---- 
+class Sq_1_2 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_1_2 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_a1); 
+      element[ 1 ]=  new Atomic_producer(Event_a2); 
+    } 
+};// end class Sq_1_2 
+
+//---- 3 ---- 
+class Sq_5_6 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_5_6 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_b1); 
+      element[ 1 ]=  new Atomic_producer(Event_a2); 
+      element[ 2 ]=  new Atomic_producer(Event_b2); 
+    } 
+};// end class Sq_5_6 
+
+//---- 4 ---- 
+class Comp_3_4 : public Composite_producer { 
+public: // constructor 
+    Comp_3_4 (): Composite_producer(Event_A){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_1_2 ; 
+    } 
+};// end class Comp_3_4 
+
+//---- 5 ---- 
+class Comp_7_8 : public Composite_producer { 
+public: // constructor 
+    Comp_7_8 (): Composite_producer(Event_B){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_5_6 ; 
+    } 
+};// end class Comp_7_8 
+
+//---- 6 ---- 
+class SCHEMA_S: public Composite_producer {
+public: // constructor 
+    SCHEMA_S(): Composite_producer(Event_S){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[0]= new Composite_secondary_producer(Event_A);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_B);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new SIMPLE_LIST_36_37_ob(Event_SIMPLE_LIST_36_37);
+    } 
+};// end class SCHEMA_S
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example44_Gantt_Chart.json");
+   global_flag = false;
+  // add tab names to table objects 
+   TABLE_25_gantt_1.tab_names.push_back("event_name");
+   TABLE_25_gantt_1.tab_names.push_back("start_time");
+   TABLE_25_gantt_1.tab_names.push_back("duration_time");
+  // add tab names to chart objects 
+   // bar chart for table gantt_1 
+   CHART_28_gantt_2.x_axis_tab_name= "event_name";
+   CHART_28_gantt_2.tab_names.push_back("event_name");
+   CHART_28_gantt_2.tab_names.push_back("start_time");
+   CHART_28_gantt_2.tab_names.push_back("duration_time");
+   CHART_28_gantt_2.rotate= true;
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+   // harvesting traces for ROOT events 
+    Comp_3_4 temp_7; temp_7.harvest();
+    Comp_7_8 temp_8; temp_8.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_S temp_9; temp_9.harvest();
+   temp_9.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"S"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.mp
new file mode 100644
index 0000000..fe4483d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.mp
@@ -0,0 +1,39 @@
+/*	Example44
+ Gantt chart example
+*/
+SCHEMA S
+ROOT A: a1 a2;
+
+ROOT B: b1 a2 b2;
+
+A, B SHARE ALL a2;
+
+COORDINATE 	$a1: a1, $a2: a2, $b1: b1, $b2: b2
+	DO
+		SET $a1.duration AT LEAST 3;
+		SET $a2.duration AT LEAST 5;
+		SET $b1.duration AT LEAST 1;
+		SET $b2.duration AT LEAST 2;
+	OD;
+
+TABLE gantt_1{ 
+	TABS 	string event_name, 
+			number start_time, 
+			number duration_time;
+};
+
+BAR CHART gantt_2 { TITLE("Example of Gantt Chart");
+	FROM gantt_1;
+	X_AXIS event_name;
+	ROTATE; /* to place the X_AXIS vertical */
+};
+
+COORDINATE $e: $$EVENT
+	DO 	/* add this event to the Table */ 
+		gantt_1 		<|
+			event_name: 	SAY($e),
+			start_time: 	$e.start.smallest,
+			duration_time:  $e.duration.largest;
+	OD;
+
+SHOW gantt_2;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp.txt
new file mode 100644
index 0000000..d8e2c46
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example44_Gantt_Chart tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.tree
new file mode 100644
index 0000000000000000000000000000000000000000..ebf9db514796e2a4a5427fb50b70e9b6d3d74603
GIT binary patch
literal 7680
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
I|MU3&7pZ8(HUIzs

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.txt
new file mode 100644
index 0000000..8db3bca
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example44_Gantt_Chart.txt
@@ -0,0 +1,9 @@
+generating traces for scope 1 
+completed A: 	1 traces (0 MARKed) 	3 events 
+
+completed B: 	1 traces (0 MARKed) 	4 events 
+
+completed S: 	1 traces (0 MARKed) 	8 events 
+
+Elapsed time 0.000251 sec, Speed: 59761 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.cpp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.cpp
new file mode 100644
index 0000000..d97347e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.cpp
@@ -0,0 +1,1433 @@
+
+/* Monterey Phoenix-> C++ compiler, v.4.0, March 2018 
+   Mikhail Auguston, NPS, CS Dept, Monterey, CA, USA 
+
+SCHEMA Martian_Lander trace generator for scope 1 
+
+***************************************************************** 
+*** generated constants are visible in the mp2_print_etc.h 
+*****************************************************************/ 
+#include "Interval.h" // for interval attributes 
+#include "mp2.h" // the permanent part 
+//********************************************* 
+//== event attribute sets and infrastructure == 
+//********************************************* 
+//-- node attributes -- 
+//-- GLOBAL attributes -- 
+
+inline bool shared_event_attribute_comparison (int event1, int event2){ 
+  return true; 
+} 
+// numeric variables in FOR_loops 
+//************************************************ 
+//==== UDR sets, matrices, and infrastructure ==== 
+//************************************************ 
+// sets of User-Defined Relations similar to Follows, Inside, Equals 
+       pair_list alert_UDR_set;
+// matrices for User-Defined Relations used by Coordinate objects 
+
+// clear UDR and attribute sets preparing for next trace assembly by harvest() 
+inline void clear_UDR_sets(){ 
+    alert_UDR_set.clear();
+} 
+
+// assembly of UDRs and attribute tables 
+// preparing to store in segment storage by harvest() 
+inline void assemble_UDRs(){ 
+  if(!alert_UDR_set.empty())
+    UDRs.insert(pair<string, pair_list>("alert",alert_UDR_set));
+} 
+
+// adjust and add UDRs from the segment storage 
+// called by Composite_secondary_producer ::traverse() 
+// restore original timing attributes in the segment 
+inline void add_adjusted_UDRs(int base, UDR_set &UDR_list, 
+        map<string, map<int, float> > &num_attr_container, 
+        map<string, map<int, bool> > &bool_attr_container, 
+        map<string, map<int, Interval> > &Interval_attr_container, 
+        vector<Interval> &start_attribute_list, 
+        vector<Interval> &duration_attribute_list, 
+        vector<Interval> &end_attribute_list ){ 
+
+  // restore timing attribute tables 
+  time_start_attributes.insert( time_start_attributes.end(), 
+        start_attribute_list.begin(), start_attribute_list.end()); 
+  time_duration_attributes.insert( time_duration_attributes.end(), 
+        duration_attribute_list.begin(), duration_attribute_list.end()); 
+  time_end_attributes.insert( time_end_attributes.end(), 
+        end_attribute_list.begin(), end_attribute_list.end()); 
+
+  // for UDR_list traversal 
+  UDR_set:: iterator p1; 
+  pair_list:: iterator p; 
+
+  for(p1 = UDR_list.begin(); p1 != UDR_list.end(); p1++ ){ 
+    
+    if(p1->first == "alert"){
+      for(p = (p1->second).begin(); p != (p1->second).end(); p++) 
+         alert_UDR_set.insert(pair<int, int>(p->first + base, p->second + base));}
+  } 
+
+  // for num_attr_container traversal 
+  map<string, map<int, float> >:: iterator p1_num_attr; 
+  map<int, float>:: iterator p_float; 
+
+  for(p1_num_attr = num_attr_container.begin(); 
+      p1_num_attr != num_attr_container.end(); p1_num_attr++ ){ 
+  } 
+
+  // for bool_attr_container traversal 
+  map<string, map<int, bool> >:: iterator p1_bool_attr; 
+  map<int, bool>:: iterator p_bool; 
+
+  for(p1_bool_attr = bool_attr_container.begin(); 
+      p1_bool_attr != bool_attr_container.end(); p1_bool_attr++ ){ 
+  } 
+
+  // for interval_attr_container traversal 
+  map<string, map<int, Interval> >:: iterator p1_interval_attr; 
+  map<int, Interval>:: iterator p_interval; 
+
+  for(p1_interval_attr = Interval_attr_container.begin(); 
+      p1_interval_attr != Interval_attr_container.end(); p1_interval_attr++ ){ 
+  } 
+} 
+
+// map IN, PRECEDES, and UDRs from the segment storage by Composite_secondary_producer::traverse()
+// copies all relations IN, PRECEDES, UDRs from "from" to "to" 
+inline void map_relations(int from, int to){ 
+  pair_list:: iterator p; 
+  pair_list temp_list; // to assemble pairs to be copied 
+
+  // mapping from  Inside 
+  temp_list.clear(); 
+   for(p = Inside.begin(); p != Inside.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Inside.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  Follows 
+  temp_list.clear(); 
+   for(p = Follows.begin(); p != Follows.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   Follows.insert(temp_list.begin(), temp_list.end());// merge
+
+  // mapping from  alert_UDR_set 
+  temp_list.clear(); 
+   for(p = alert_UDR_set.begin(); p != alert_UDR_set.end(); p++){
+     if(p->first == from)  temp_list.insert(pair<int, int>(to, p->second)); 
+     if(p->second == from)  temp_list.insert(pair<int, int>(p->first, to)); 
+    } 
+   alert_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+  } 
+
+inline void merge_UDRs_for_shared_events(int a, int b){ 
+ multimap<int, int>:: iterator p; 
+ pair_list temp_list; // to assemble pairs to be copied 
+
+  // merging from alert_UDR_set 
+  // doing all adjustments to both a and b 
+  temp_list.clear(); 
+  for(p = alert_UDR_set.begin(); p != alert_UDR_set.end(); p++) {
+    if(p->second == b) 
+      temp_list.insert(pair<int, int>(p->first, a));
+    if(p->first == b) 
+     temp_list.insert(pair<int, int>(a, p->second));
+    if(p->second == a) 
+      temp_list.insert(pair<int, int>(p->first, b));
+    if(p->first == a) 
+     temp_list.insert(pair<int, int>(b, p->second));
+  }; 
+  alert_UDR_set.insert(temp_list.begin(), temp_list.end());// merge
+
+} 
+
+//***** VIEW object containers ***** 
+
+class tuple_type_TABLE_150_Time_table{ public: 
+  string tab_event_name;
+  float tab_start_time;
+  float tab_event_duration;
+  float tab_end_time;
+  tuple_type_TABLE_150_Time_table(){
+    tab_event_name= "";
+    tab_start_time= 0;
+    tab_event_duration= 0;
+    tab_end_time= 0;}; 
+}; 
+table_object TABLE_150_Time_table;
+chart_object CHART_162_Timing;
+
+vector<string> global_SAY_list_999999; 
+
+enum Event_name {Dummy_event, GenericContainer, Message_event 
+       // atomic events 
+    , Event_STMR1
+    , Event_IVEL
+    , Event_IALT
+    , Event_CKDT
+    , Event_TDP
+    , Event_stop_Timer1
+    , Event_START
+    , Event_RACC
+    , Event_STMR2
+    , Event_ADJM
+    , Event_ETC
+    , Event_IOINT
+    , Event_TMRINT
+    , Event_IEM
+    , Event_Lands
+    , Event_stop_Timer2
+    , Event_fire_RRM
+       // composite events 
+    , Event_Emergency_Landing
+       // top coordination operations 
+       // top conditional and simple action operations 
+    , Event_SIMPLE_LIST_165_166
+       // ADD operations 
+       // ROOT events 
+    , Event_Measure_and_display
+    , Event_Landing
+    , Event_Timer2
+       // main schema event 
+    , Event_Martian_Lander }; 
+
+string event_name_string[] = {"Dummy", "GenericContainer", "Message_event" 
+     , "STMR1"
+     , "IVEL"
+     , "IALT"
+     , "CKDT"
+     , "TDP"
+     , "stop_Timer1"
+     , "START"
+     , "RACC"
+     , "STMR2"
+     , "ADJM"
+     , "ETC"
+     , "IOINT"
+     , "TMRINT"
+     , "IEM"
+     , "Lands"
+     , "stop_Timer2"
+     , "fire_RRM"
+     , "Emergency_Landing"
+     , "SIMPLE_LIST_165_166"
+     , "Measure_and_display"
+     , "Landing"
+     , "Timer2"
+     , "Martian_Lander" }; 
+
+#include "mp2_print_etc.h" // print methods 
+// for view object .json printing 
+//******************************* 
+inline void generate_AD_json_list (char & comma, AD_flag_set s){ 
+AD_flag_set::iterator AD_flag_iterator; 
+} 
+//********************************************** 
+//  # special functions, aggregate operations    
+//  quantifiers, event comparison                
+//********************************************** 
+
+//---- 1 ---- 
+bool Quantified_expr_134_135(Coordinate * current_host, int a_variable){ 
+     //===================================== 
+     // quantifier EXISTS with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= false; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int b_variable;
+     int pivot_b_variable = 0; 
+
+     // loop 1 for b_variable 
+     for( b_variable = 0; b_variable < len; b_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ b_variable  * len +  pivot_b_variable 
+]) && 
+           (   
+            (Stack[b_variable]-> name == Event_IVEL)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for EXISTS 
+        if( find_pair_in_table( b_variable , a_variable ,	Follows) ) 
+          {result = true; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 2 ---- 
+bool Quantified_expr_136_137(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int a_variable;
+     int pivot_a_variable = 0; 
+
+     // loop 1 for a_variable 
+     for( a_variable = 0; a_variable < len; a_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ a_variable  * len +  pivot_a_variable 
+]) && 
+           (   
+            (Stack[a_variable]-> name == Event_IVEL)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( (! ( ( (recalculate_timing_attributes(), 
+       time_start_attributes[Root_table[Event_Measure_and_display]] ) - 
+(recalculate_timing_attributes(), 
+       time_start_attributes[a_variable] ) )>= 40 )|| Quantified_expr_134_135(current_host, a_variable
+) )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+
+//---- 3 ---- 
+bool Quantified_expr_142_143(Coordinate * current_host){ 
+     //===================================== 
+     // quantifier FOREACH with 1 variables 
+     //===================================== 
+     current_host->create_matrices(); 
+     int len = current_host->len; 
+     bool result= true; 
+
+     // declarations for variables under quantifiers 
+     // and pivot assignments 
+     // event under quantifier should be IN pivot event (the source) 
+     int a_variable;
+     int pivot_a_variable = 0; 
+
+     // loop 1 for a_variable 
+     for( a_variable = 0; a_variable < len; a_variable ++){ 
+       // selection condition for 1 FROM 
+       if( (current_host-> in_matrix [ a_variable  * len +  pivot_a_variable 
+]) && 
+           (   
+            (Stack[a_variable]-> name == Event_IOINT)   ) 
+         ) // end of if(selection condition) 
+       { // branch for 1 
+
+        // evaluate the body bool_expr for FOREACH 
+        if( ( (recalculate_timing_attributes(), 
+       time_start_attributes[a_variable] ) <= 100 )) {} 
+        else {result = false; goto end_of_story;}; 
+       }; // end of branch for 1 
+     }; // end for loop 1 
+
+    end_of_story: 
+    return result; 
+} 
+//*************************** 
+//==== generated classes ==== 
+//*************************** 
+
+//---- 4 ---- 
+class SIMPLE_LIST_165_166_ob: public Coordinate {
+public: // constructor 
+    SIMPLE_LIST_165_166_ob(int n): Coordinate(n){type = simple_or_IF_op;}
+
+    Traversal_result traverse(){ 
+ try{ create_matrices(); 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Landing_source = Root_table[Event_Landing];
+   // lists of shared events for  Landing 
+  vector<int> Landing_STMR1_list;
+  vector<int> Landing_stop_Timer1_list;
+
+  int Measure_and_display_source = Root_table[Event_Measure_and_display];
+   // lists of shared events for  Measure_and_display 
+  vector<int> Measure_and_display_STMR1_list;
+  vector<int> Measure_and_display_stop_Timer1_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Landing_source ]){ 
+     if( Stack[i]->name == Event_STMR1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Landing_STMR1_list.begin();
+          s != Landing_STMR1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Landing_STMR1_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_stop_Timer1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Landing_stop_Timer1_list.begin();
+          s != Landing_stop_Timer1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Landing_stop_Timer1_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Measure_and_display_source ]){ 
+     if( Stack[i]->name == Event_STMR1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Measure_and_display_STMR1_list.begin();
+          s != Measure_and_display_STMR1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Measure_and_display_STMR1_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_stop_Timer1 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Measure_and_display_stop_Timer1_list.begin();
+          s != Measure_and_display_stop_Timer1_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Measure_and_display_stop_Timer1_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Measure_and_display_STMR1_list.size();
+     if(Landing_STMR1_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Measure_and_display_stop_Timer1_list.size();
+     if(Landing_stop_Timer1_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Measure_and_display_STMR1_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Landing_STMR1_list[i], Measure_and_display_STMR1_list[i]);
+   } 
+   len_to_compare = Measure_and_display_stop_Timer1_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Landing_stop_Timer1_list[i], Measure_and_display_stop_Timer1_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+
+  { // SHARE ALL operation 
+  create_matrices(); 
+
+  int Landing_source = Root_table[Event_Landing];
+   // lists of shared events for  Landing 
+  vector<int> Landing_STMR2_list;
+  vector<int> Landing_TMRINT_list;
+  vector<int> Landing_stop_Timer2_list;
+
+  int Timer2_source = Root_table[Event_Timer2];
+   // lists of shared events for  Timer2 
+  vector<int> Timer2_STMR2_list;
+  vector<int> Timer2_TMRINT_list;
+  vector<int> Timer2_stop_Timer2_list;
+
+  // create lists of shared events 
+  for(int i = 0; i < len; i++){ 
+   if(in_matrix[i * len + Landing_source ]){ 
+     if( Stack[i]->name == Event_STMR2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Landing_STMR2_list.begin();
+          s != Landing_STMR2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Landing_STMR2_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_TMRINT ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Landing_TMRINT_list.begin();
+          s != Landing_TMRINT_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Landing_TMRINT_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_stop_Timer2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Landing_stop_Timer2_list.begin();
+          s != Landing_stop_Timer2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Landing_stop_Timer2_list.push_back(i);
+     } 
+    }; 
+   if(in_matrix[i * len + Timer2_source ]){ 
+     if( Stack[i]->name == Event_STMR2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Timer2_STMR2_list.begin();
+          s != Timer2_STMR2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Timer2_STMR2_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_TMRINT ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Timer2_TMRINT_list.begin();
+          s != Timer2_TMRINT_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Timer2_TMRINT_list.push_back(i);
+     } 
+     if( Stack[i]->name == Event_stop_Timer2 ){
+	   // make sure this is fresh event not yet shared 
+       int found = 0; 
+       for(vector<int>::  iterator s =  Timer2_stop_Timer2_list.begin();
+          s != Timer2_stop_Timer2_list.end(); s++){
+         if((found = eq_matrix[i * len + *s])) break; 
+       } 
+       if(!found) Timer2_stop_Timer2_list.push_back(i);
+     } 
+    }; 
+  } // finished creating lists of shared events 
+
+  // check that selected lists are of the same length 
+  int len_to_compare;
+   len_to_compare = Timer2_STMR2_list.size();
+     if(Landing_STMR2_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Timer2_TMRINT_list.size();
+     if(Landing_TMRINT_list.size() != len_to_compare) throw failed ; 
+   len_to_compare = Timer2_stop_Timer2_list.size();
+     if(Landing_stop_Timer2_list.size() != len_to_compare) throw failed ; 
+
+  // do the SHARE ALL 
+   len_to_compare = Timer2_STMR2_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Landing_STMR2_list[i], Timer2_STMR2_list[i]);
+   } 
+   len_to_compare = Timer2_TMRINT_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Landing_TMRINT_list[i], Timer2_TMRINT_list[i]);
+   } 
+   len_to_compare = Timer2_stop_Timer2_list.size();
+   for(int i = 0; i < len_to_compare; i++){ 
+     make_equality_complete(Landing_stop_Timer2_list[i], Timer2_stop_Timer2_list[i]);
+   } 
+
+  create_matrices(); // to check for axiom violation 
+  } // end of SHARE ALL 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_RACC))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_STMR1))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_STMR2))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_ADJM))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,20 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_TDP))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_IEM))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_ETC))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_IVEL))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,20 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_IALT))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,20 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_CKDT))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_fire_RRM))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_duration(a_variable,10 ); 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    // ADD operation 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Running Timer1";
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    int temp_109 = Stack.size() - 1;
+    alert_UDR_set.insert(pair<int, int>(temp_109,Root_table[Event_Measure_and_display]));
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_TMRINT))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    SET_start(a_variable,101 ); 
+    // ADD operation 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Emergency landing started at ";
+     Interval temp_1 = (recalculate_timing_attributes(), 
+       time_start_attributes[a_variable] ) ; 
+    if( temp_1 .smallest != temp_1 .largest) 
+     convert <<"["<<  temp_1 .smallest << " .. "<< temp_1 .largest << "]"; 
+    else convert << temp_1 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    int temp_116 = Stack.size() - 1;
+    alert_UDR_set.insert(pair<int, int>(temp_116,a_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int a_variable; // thread variable
+  vector<int> a_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for a_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      a_variable = i; 
+      if( a_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_Lands))  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = a_variable_list.begin(); s != a_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) a_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source a_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = a_variable_list.size();
+  if(thread_length != a_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    a_variable= a_variable_list[i];
+    // ADD operation 
+    { // SAY_event generation 
+     string			message; 
+     ostringstream convert; 
+     convert <<"Landing complete at ";
+     Interval temp_2 = (recalculate_timing_attributes(), 
+       time_end_attributes[a_variable] ) ; 
+    if( temp_2 .smallest != temp_2 .largest) 
+     convert <<"["<<  temp_2 .smallest << " .. "<< temp_2 .largest << "]"; 
+    else convert << temp_2 .smallest; 
+     message = convert.str(); 
+
+     SAY_event * e; 
+     map<string, SAY_event *>::iterator p = message_table.find(message); 
+     if( p != message_table.end()) e = p-> second; 
+     else{ // create new SAY_event 
+       e = new SAY_event(Message_event, message); 
+       message_table[message] = e; 
+     } 
+     // add e to the Stack and add e IN THIS 
+     Inside.insert(pair<int, int>(Stack.size(), 0)); 
+     Stack.push_back(e); 
+     time_start_attributes.push_back(Interval()); 
+     time_duration_attributes.push_back(Interval()); 
+     time_end_attributes.push_back(Interval()); 
+     create_matrices();// since Stack and relation table have been modified 
+    } 
+    int temp_125 = Stack.size() - 1;
+    alert_UDR_set.insert(pair<int, int>(temp_125,a_variable));
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+   if( Quantified_expr_136_137(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+   if( Quantified_expr_142_143(current_host) ){} 
+  else{ 
+   throw failed; // REJECT 
+   }// end IF 
+    { // Time_table title generation 
+     ostringstream convert; 
+     convert <<"Event timings";
+     TABLE_150_Time_table.title = convert.str();}
+    // CLEAR Time_table 
+     CHART_162_Timing.clean(); // clear chart for the table Time_table
+     TABLE_150_Time_table.clean();
+ {  // COORDINATE operation 
+  int thread_length = -1; 
+  int x_variable; // thread variable
+  vector<int> x_variable_list; // list of coordinated events
+  int  THIS_source = 0 ; // source of coordination 
+
+  // create lists of coordinated events 
+  // preparing thread for x_variable 
+  for(int i = 0; i < len; i++){ 
+      // preparing loop variables for use in SUCH THAT and FROM 
+      x_variable = i; 
+      if( x_variable_list.size() == thread_length){} 
+      else{ }; 
+      if(in_matrix[i * len +  THIS_source ]){ 
+       if( (  (Stack[i]->name == Event_IVEL)|| (Stack[i]->name == Event_IALT)|| (Stack[i]->name == Event_TDP)|| (Stack[i]->name == Event_ADJM)|| (Stack[i]->name == Event_fire_RRM)|| (Stack[i]->name == Event_Emergency_Landing)|| (Stack[i]->name == Event_Lands)|| (Stack[i]->name == Event_stop_Timer1)
+)  ){
+         // make sure this is fresh event not yet shared 
+         int found = 0; 
+         for(vector<int>::  iterator s = x_variable_list.begin(); s != x_variable_list.end(); s++){
+           if((found = eq_matrix[i * len + *s])) break; 
+         } 
+         if(!found) x_variable_list.push_back(i);
+       } 
+     } }; 
+  // no processing needed for the default source x_variable_list
+  // finally check the thread length 
+  if(thread_length < 0) thread_length = x_variable_list.size();
+  if(thread_length != x_variable_list.size()) throw failed;
+
+  // do the COORDINATE 
+  for(int i = 0; i < thread_length; i++){ 
+    x_variable= x_variable_list[i];
+    { // add tuple to table Time_table 
+      tuple_type_TABLE_150_Time_table temp;
+     { // string tab assignment 
+     ostringstream convert; 
+     convert << event_name_string[Stack[ x_variable ]->name]; 
+      temp.tab_event_name= convert.str();}
+      temp.tab_start_time= (recalculate_timing_attributes(), 
+       time_start_attributes[x_variable] .smallest) ; 
+      temp.tab_event_duration= (recalculate_timing_attributes(), 
+       time_duration_attributes[x_variable] .smallest) ; 
+      temp.tab_end_time= (recalculate_timing_attributes(), 
+       time_end_attributes[x_variable] .smallest) ; 
+      ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_start_time; comma= 44; 
+      row << comma << temp.tab_event_duration; comma= 44; 
+      row << comma << temp.tab_end_time; comma= 44; 
+      TABLE_150_Time_table.table_rows.push_back(row.str());
+     // add tab strings for charts in table Time_table 
+       // add string to chart Timing 
+      { ostringstream row; char comma= 32; 
+      row << comma <<"\""<< temp.tab_event_name<<"\""; comma= 44; 
+      row << comma << temp.tab_start_time; comma= 44; 
+      row << comma << temp.tab_event_duration; comma= 44; 
+      CHART_162_Timing.chart_rows.push_back(row.str()); } // end adding to chart Timing
+    } // end of add tuple 
+  }// end for 
+  create_matrices(); // to check for axiom violation 
+}  // end of COORDINATE 
+    // SHOW Time_table 
+    table_container.insert(pair<int, table_object>( 1,TABLE_150_Time_table));
+    { // Timing title generation 
+     ostringstream convert; 
+     convert <<"Event timings";
+     CHART_162_Timing.title = convert.str();}
+    // SHOW Timing 
+    chart_container.insert(pair<int, chart_object>( 2,CHART_162_Timing));
+ } // end of try 
+ catch(Traversal_result t){ 
+   return failed; 
+ } 
+ return success_and_completed; 
+    } // end traverse() 
+}; // end SIMPLE_LIST_165_166_ob class
+
+//---- 5 ---- 
+class Itr_27_28 : public OR_node_producer_container { 
+public: // constructor 
+    Itr_27_28 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_fire_RRM); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Itr_27_28 
+
+//---- 6 ---- 
+class Set_1_2 : public SET_node_producer_container { 
+public: // constructor 
+    Set_1_2 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_IVEL); 
+      element[ 1 ]=  new Atomic_producer(Event_IALT); 
+    } 
+};// end class Set_1_2 
+
+//---- 7 ---- 
+class Sq_3_4 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_3_4 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Set_1_2 ; 
+      element[ 1 ]=  new Atomic_producer(Event_CKDT); 
+      element[ 2 ]=  new Atomic_producer(Event_TDP); 
+    } 
+};// end class Sq_3_4 
+
+//---- 8 ---- 
+class Sq_7_8 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_7_8 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_STMR1); 
+      element[ 1 ]=  new Sq_3_4 ; 
+      element[ 2 ]=  new Atomic_producer(Event_stop_Timer1); 
+    } 
+};// end class Sq_7_8 
+
+//---- 9 ---- 
+class Set_11_12 : public SET_node_producer_container { 
+public: // constructor 
+    Set_11_12 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_RACC); 
+      element[ 1 ]=  new Atomic_producer(Event_STMR1); 
+      element[ 2 ]=  new Atomic_producer(Event_STMR2); 
+    } 
+};// end class Set_11_12 
+
+//---- 10 ---- 
+class Set_13_14 : public SET_node_producer_container { 
+public: // constructor 
+    Set_13_14 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_ADJM); 
+      element[ 1 ]=  new Atomic_producer(Event_ETC); 
+    } 
+};// end class Set_13_14 
+
+//---- 11 ---- 
+class Sq_17_18 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_17_18 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_TMRINT); 
+      element[ 1 ]=  new Atomic_producer(Event_IEM); 
+      element[ 2 ]=  new Composite_secondary_producer(Event_Emergency_Landing); 
+    } 
+};// end class Sq_17_18 
+
+//---- 12 ---- 
+class Alt_19_20 : public OR_node_producer_container { 
+public: // constructor 
+    Alt_19_20 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_IOINT); 
+      element[ 1 ]=  new Sq_17_18 ; 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Alt_19_20 
+
+//---- 13 ---- 
+class Set_21_22 : public SET_node_producer_container { 
+public: // constructor 
+    Set_21_22 (): SET_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_stop_Timer1); 
+      element[ 1 ]=  new Atomic_producer(Event_stop_Timer2); 
+    } 
+};// end class Set_21_22 
+
+//---- 14 ---- 
+class Sq_23_24 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_23_24 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 6 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_START); 
+      element[ 1 ]=  new Set_11_12 ; 
+      element[ 2 ]=  new Set_13_14 ; 
+      element[ 3 ]=  new Alt_19_20 ; 
+      element[ 4 ]=  new Atomic_producer(Event_Lands); 
+      element[ 5 ]=  new Set_21_22 ; 
+    } 
+};// end class Sq_23_24 
+
+//---- 15 ---- 
+class Opt_31_32 : public OR_node_producer_container { 
+public: // constructor 
+    Opt_31_32 (): OR_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 2 ]; 
+      element[ 0 ]=  &Dummy ; 
+      element[ 1 ]=  new Atomic_producer(Event_TMRINT); 
+      alternative_probability =	new float[ element_count ]; 
+      alternative_probability[ 0 ]=  5.000000E-01; 
+      alternative_probability[ 1 ]=  5.000000E-01; 
+    } 
+};// end class Opt_31_32 
+
+//---- 16 ---- 
+class Sq_33_34 : public AND_node_producer_container { 
+public: // constructor 
+    Sq_33_34 (): AND_node_producer_container (GenericContainer){ 
+      element =	new Event_producer_ref[ element_count = 3 ]; 
+      element[ 0 ]=  new Atomic_producer(Event_STMR2); 
+      element[ 1 ]=  new Opt_31_32 ; 
+      element[ 2 ]=  new Atomic_producer(Event_stop_Timer2); 
+    } 
+};// end class Sq_33_34 
+
+//---- 17 ---- 
+class Comp_29_30 : public Composite_producer { 
+public: // constructor 
+    Comp_29_30 (): Composite_producer(Event_Emergency_Landing){
+      target_event = Composite_event_instance_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Itr_27_28 ; 
+    } 
+};// end class Comp_29_30 
+
+//---- 18 ---- 
+class Comp_9_10 : public Composite_producer { 
+public: // constructor 
+    Comp_9_10 (): Composite_producer(Event_Measure_and_display){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_7_8 ; 
+    } 
+};// end class Comp_9_10 
+
+//---- 19 ---- 
+class Comp_25_26 : public Composite_producer { 
+public: // constructor 
+    Comp_25_26 (): Composite_producer(Event_Landing){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_23_24 ; 
+    } 
+};// end class Comp_25_26 
+
+//---- 20 ---- 
+class Comp_35_36 : public Composite_producer { 
+public: // constructor 
+    Comp_35_36 (): Composite_producer(Event_Timer2){
+      target_event = ROOT_node ; 
+      element =	new Event_producer_ref[ element_count = 1 ]; 
+      element[ 0 ]=  new Sq_33_34 ; 
+    } 
+};// end class Comp_35_36 
+
+//---- 21 ---- 
+class SCHEMA_Martian_Lander: public Composite_producer {
+public: // constructor 
+    SCHEMA_Martian_Lander(): Composite_producer(Event_Martian_Lander){
+      target_event = Schema_node; 
+      element =	new Event_producer_ref[ element_count = 4 ]; 
+      element[0]= new Composite_secondary_producer(Event_Measure_and_display);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[0] -> type = ROOT_node; 
+      element[1]= new Composite_secondary_producer(Event_Landing);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[1] -> type = ROOT_node; 
+      element[2]= new Composite_secondary_producer(Event_Timer2);
+        // for Root_table update in Composite_secondary_producer::traverse() 
+           element[2] -> type = ROOT_node; 
+      element[3]= new SIMPLE_LIST_165_166_ob(Event_SIMPLE_LIST_165_166);
+    } 
+};// end class SCHEMA_Martian_Lander
+
+//*************************** 
+inline void harvest_GLOBAL_view(Composite_producer * m){ 
+   char comma= 32;// space 
+   map<int, report_object>::iterator p; 
+   AD_flags.clear(); 
+
+//*** start generating .json contents 
+   JSON<< ",\"GLOBAL\":[\"U\"";
+//****** output view objects 
+//*** generate all global Reports 
+   {map<int, report_object>::iterator p1; 
+    for(p1 = report_container.begin(); p1 != report_container.end(); p1++){ 
+       JSON<< ","; 
+       (p1 -> second).print_report_json();} } 
+//*** generate all global Graphs 
+    {map<int, graph_object>::iterator p2; 
+     for(p2 = graph_container.begin(); p2 != graph_container.end(); p2++){ 
+        JSON<< ","; 
+        (p2 -> second).print_graph_json();} } 
+//*** generate all global Tables 
+    {map<int, table_object>::iterator p3; 
+     for(p3 = table_container.begin(); p3 != table_container.end(); p3++){ 
+        JSON<< ","; 
+        (p3 -> second).print_table_json();} } 
+//*** generate all global Charts 
+    {map<int, chart_object>::iterator p4; 
+     for(p4 = chart_container.begin(); p4 != chart_container.end(); p4++){ 
+        JSON<< ","; 
+        (p4 -> second).print_chart_json();} } 
+//*** generate all requested ADs 
+   comma = 44; 
+   generate_AD_json_list(comma, AD_flags); 
+   JSON<<"]"; 
+} // end of harvest_GLOBAL_view() 
+//****************************************** 
+// main 
+//****************************************** 
+int main(){ 
+   gen_start = clock(); 
+   unique_num = 0; derivation_path_mark = -1; 
+   JSON.open("Example45_Martian_Lander.json");
+   global_flag = false;
+  // add tab names to table objects 
+   TABLE_150_Time_table.tab_names.push_back("event_name");
+   TABLE_150_Time_table.tab_names.push_back("start_time");
+   TABLE_150_Time_table.tab_names.push_back("event_duration");
+   TABLE_150_Time_table.tab_names.push_back("end_time");
+  // add tab names to chart objects 
+   // bar chart for table Time_table 
+   CHART_162_Timing.x_axis_tab_name= "event_name";
+   CHART_162_Timing.tab_names.push_back("event_name");
+   CHART_162_Timing.tab_names.push_back("start_time");
+   CHART_162_Timing.tab_names.push_back("event_duration");
+   CHART_162_Timing.rotate= true;
+   cout<< "generating traces for scope 1 "<<endl; 
+//---------------------------- 
+    try{ 
+   // harvesting traces for composite events 
+    Comp_29_30 temp_22; temp_22.harvest();
+   // harvesting traces for ROOT events 
+    Comp_9_10 temp_23; temp_23.harvest();
+    Comp_25_26 temp_24; temp_24.harvest();
+    Comp_35_36 temp_25; temp_25.harvest();
+   // harvesting traces for main schema 
+    SCHEMA_Martian_Lander temp_26; temp_26.harvest();
+   temp_26.output_JSON();
+   gen_end = clock(); 
+    } 
+    catch(int n){ 
+      cout<< "no traces found for schema "<<"Martian_Lander"<<endl; }
+//---------------------------- 
+   show_statistics(); 
+return 0; 
+} // end main() 
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.mp b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.mp
new file mode 100644
index 0000000..10b3b3a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.mp
@@ -0,0 +1,163 @@
+/* 	Example 45. Real time system behavior modeling.
+	Landing system for Martian Lander.
+
+	MP model written by M.Auguston following example 1 and Appendix B from
+	Farnam Jahanian, Aloysius Ka-Lau Mok 
+	"Safety analysis of timing properties in real-time systems",
+	IEEE Transactions on Software Engineering
+	Year: 1986, Volume SE-12, Issue 9, pp.890-904
+
+The landing system operates in one of two modes: normal or emergency. 
+When the system is turned on (an external event), it operates in the 
+normal mode. While in the normal landing mode, the pilot can control 
+acceleration, velocity, and position by adjusting the downward thrust 
+generated by the rocket motor, thus bringing the space vehicle to a 
+safe landing. This task is continually performed in two phases. 
+
+In phase 1, an I/O device is started to read the acceleration set 
+by the pilot, and a hardware timer is started which generates a timer 
+interrupt (i.e., external event TMRINT) after 100 ms. In phase 2, 
+when the I/O operation is completed (i.e., external event IOINT), 
+the motor thrust is adjusted appropriately. However, if for some 
+reason the I/O operation is not done within 100 ms, the timer interrupt 
+initiates the emergency landing mode. While in the emergency mode, 
+the altitude and velocity is periodically sampled and a retro-rocket 
+is automatically fired to bring the vehicle to a safe landing.
+
+Events and actions:
+RACC    Starts IO device to read acceleration
+STMR    Start hardware watchdog timer, this model has two timers
+ADJM    Adjust motor thrust
+TDP     Transmit info to display panel
+IEM     Initiate emergency mode 
+ETC     Other housekeeping function,
+IVEL    Input measured velocity
+IALT    Input measured altitude
+CKDT    Check input data for consistency
+RRM     Retro-rocket module
+START   Systems start up,
+IOINT   I/O device signals completion
+TMRINT  Timer Interrupt, occurs at least 100 ms after start of STMR
+
+Action Time in ms
+RACC 	10
+STMR 	10
+ADJM 	20
+TDP 	10
+IEM 	10
+ETC 	10
+IVEL 	20
+IALT 	20
+CKDT 	10
+RRM 	10
+
+	run for scope 1 and up.
+*/
+SCHEMA Martian_Lander
+
+ROOT Measure_and_display:
+	/* runs Timer1 */
+	STMR1
+	(+ {IVEL, IALT}
+		CKDT
+		TDP
+     +)
+	stop_Timer1
+;
+
+ROOT Landing: 
+	START
+/* Phase 1 */
+	{ RACC, 
+      STMR1, 	/* starts Timer1 */
+      STMR2	/* starts Timer2 */
+	}
+
+	(+ { ADJM, ETC } +)
+
+/* Phase 2 */
+	 (IOINT 	|	/* normal landing */
+        
+      TMRINT 	/* Timer2 sets interrupt */
+      IEM 		/* initiate emergency mode */
+      Emergency_Landing )
+   
+      Lands
+	  {stop_Timer1, stop_Timer2}
+;
+
+Emergency_Landing:
+	(* fire_RRM *)
+;
+
+ROOT Timer2:
+/* responsible for switching on Emergency_landing after 100 msec */
+	STMR2
+	[ TMRINT ]
+	stop_Timer2
+;
+
+Landing, Measure_and_display SHARE ALL STMR1, stop_Timer1;
+Landing, Timer2 SHARE ALL STMR2, TMRINT, stop_Timer2;
+
+/*=== set timing for events, in ms ===*/
+COORDINATE $a: RACC DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: STMR1 DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: STMR2 DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: ADJM DO SET $a.duration AT LEAST 20; OD;
+COORDINATE $a: TDP 	DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: IEM 	DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: ETC 	DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: IVEL DO SET $a.duration AT LEAST 20; OD;
+COORDINATE $a: IALT DO SET $a.duration AT LEAST 20; OD;
+COORDINATE $a: CKDT DO SET $a.duration AT LEAST 10; OD;
+COORDINATE $a: fire_RRM DO SET $a.duration AT LEAST 10; OD;
+
+/*=== arrange trace annotations ===*/
+ADD SAY("Running Timer1") alert Measure_and_display;
+
+COORDINATE $a: TMRINT DO
+	SET $a.start AT LEAST 101;
+	ADD SAY("Emergency landing started at " $a.start) alert $a;
+OD;
+
+COORDINATE $a: Lands DO
+	ADD SAY("Landing complete at " $a.end) alert $a;
+OD;
+
+/* measurement and display continue till the landing is complete */
+ENSURE FOREACH $a: IVEL (Measure_and_display.start - $a.start) >= 40 -> 
+			EXISTS $b: IVEL $a PRECEDES $b;
+
+/*====== main timing constraint ======*/
+/* normal landing completes before the deadline 100 msec. */
+ENSURE FOREACH $a: IOINT $a.start <= 100;
+
+/*===== table for some event timings =====*/
+TABLE Time_table{ TITLE("Event timings");
+    	TABS string event_name, 	number start_time, 
+    		 number event_duration, number end_time;
+   };
+
+CLEAR Time_table; /* prepare for the new event trace */
+
+/* pick up timing for some events */
+COORDINATE $x: (IVEL | IALT | TDP | ADJM | fire_RRM | 
+    			Emergency_Landing | Lands | stop_Timer1) 	DO
+	Time_table <| 	event_name: 	SAY($x),
+					start_time: 	$x.start.smallest,
+					event_duration: $x.duration.smallest,
+					end_time: 		$x.end.smallest;
+OD;
+
+SHOW Time_table;
+
+/* show Gantt Chart for some event timing */
+BAR CHART Timing{ TITLE("Event timings");
+    FROM Time_table;
+    X_AXIS event_name;
+    TABS start_time, event_duration; /* show these values only */
+    ROTATE; /* show as Gantt chart */  
+};
+
+SHOW Timing;
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp.txt
new file mode 100644
index 0000000..02f85b9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ Example45_Martian_Lander tree 1
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp2.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp2.txt
new file mode 100644
index 0000000..1f0d7db
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.temp2.txt
@@ -0,0 +1,5 @@
+=========Start  of execution ==========
+ tree
+
+
+========== End of execution ==========
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.tree b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.tree
new file mode 100644
index 0000000000000000000000000000000000000000..510ed76f63feacd4323f88eb05a178e2013f0629
GIT binary patch
literal 24576
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

literal 0
HcmV?d00001

diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.txt b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.txt
new file mode 100644
index 0000000..4116642
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_build/Example45_Martian_Lander.txt
@@ -0,0 +1,17 @@
+generating traces for scope 1 
+completed Emergency_Landing: 	2 traces (0 MARKed) 	3 events 
+		average 1.5 ev/trace 	min 1 	max 2
+
+completed Measure_and_display: 	1 traces (0 MARKed) 	7 events 
+
+completed Landing: 	3 traces (0 MARKed) 	38 events 
+		average 12.6667 ev/trace 	min 11 	max 14
+
+completed Timer2: 	2 traces (0 MARKed) 	7 events 
+		average 3.5 ev/trace 	min 3 	max 4
+
+completed Martian_Lander: 	3 traces (0 MARKed) 	81 events 
+		average 27 ev/trace 	min 24 	max 29
+
+Elapsed time 0.013218 sec, Speed: 10289 events/sec
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01_simple_message_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01_simple_message_flow.json
new file mode 100644
index 0000000..56fc55d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01_simple_message_flow.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01a_unreliable_message_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01a_unreliable_message_flow.json
new file mode 100644
index 0000000..d6375f0
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example01a_unreliable_message_flow.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example02_Data_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example02_Data_flow.json
new file mode 100644
index 0000000..f432e1e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example02_Data_flow.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0] ],
+
+[[2,1],[2,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1] ],
+
+[[2,1],[2,3],[6,5]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,6]],
+[[5,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example03_ATM_withdrawal.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example03_ATM_withdrawal.json
new file mode 100644
index 0000000..0385577
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example03_ATM_withdrawal.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.842105, 
+[ ["Customer","R",1,0,0],["ATM_system","R",2,1,0],["Data_Base","R",3,2,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0263158, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["get_money","A",5,0,6],["ATM_system","R",6,1,0],["read_card","A",7,1,1],["validate_id","A",8,1,2],["id_successful","A",9,1,3],["check_balance","A",10,1,4],["sufficient_balance","A",11,1,5],["dispense_money","A",12,1,6],["Data_Base","R",13,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[8,13],[9,6],[10,6],[10,13],[11,6],[12,6]],
+[[3,2],[3,9],[4,3],[5,4],[5,12],[7,2],[8,7],[9,8],[10,9],[10,8],[10,4],[11,10],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0263158, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["not_sufficient_funds","A",5,0,5],["ATM_system","R",6,1,0],["read_card","A",7,1,1],["validate_id","A",8,1,2],["id_successful","A",9,1,3],["check_balance","A",10,1,4],["unsufficient_balance","A",11,1,5],["Data_Base","R",12,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[8,12],[9,6],[10,6],[10,12],[11,6]],
+[[3,2],[3,9],[4,3],[5,4],[5,11],[7,2],[8,7],[9,8],[10,9],[10,8],[10,4],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.105263, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,3],["ATM_system","R",4,1,0],["read_card","A",5,1,1],["validate_id","A",6,1,2],["id_failed","A",7,1,3],["Data_Base","R",8,2,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[6,8],[7,4]],
+[[3,2],[3,7],[5,2],[6,5],[7,6]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04_Stack_behavior.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04_Stack_behavior.json
new file mode 100644
index 0000000..62cd0d9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04_Stack_behavior.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.666667, 
+[ ["Stack","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04a_Queue_behavior.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04a_Queue_behavior.json
new file mode 100644
index 0000000..96afc5e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example04a_Queue_behavior.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.666667, 
+[ ["Queue","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Queue","R",1,0,0],["enqueue","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example05_Car_Race.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example05_Car_Race.json
new file mode 100644
index 0000000..bf97d51
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example05_Car_Race.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.166667, 
+[ ["All cars have finished","T",10,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["finish","A",4,1,3],["winner","A",5,1,4],["Judge","R",6,2,0],["provide_start_signal","A",7,2,1],["watch","A",8,2,2] ],
+
+[[2,1],[3,2],[4,2],[4,6],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[4,8],[5,4],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["0 cars from 1 have finished","T",8,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Judge","R",5,2,0],["provide_start_signal","A",6,2,1],["watch","A",7,2,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[7,5]],
+[[3,6],[4,3],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["All cars have finished","T",11,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["finish","A",5,1,4],["winner","A",6,1,5],["Judge","R",7,2,0],["provide_start_signal","A",8,2,1],["watch","A",9,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,7],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[5,9],[6,5],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["0 cars from 1 have finished","T",9,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Judge","R",6,2,0],["provide_start_signal","A",7,2,1],["watch","A",8,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[5,4],[8,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example06_Assertion_Checking.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example06_Assertion_Checking.json
new file mode 100644
index 0000000..d7756e9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example06_Assertion_Checking.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.666667, 
+[ ["TaskA","R",1,0,0],["Connector_A_to_B","R",2,1,0],["TaskB","R",3,2,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["TaskA","R",1,0,0],["A_sends_request_to_B","A",2,0,1],["A_receives_data_from_B","A",3,0,2],["Connector_A_to_B","R",4,1,0],["B_receives_request_from_A","A",6,1,1],["B_sends_data_to_A","A",7,1,2],["TaskB","R",9,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[6,4],[6,9],[7,4],[7,9]],
+[[3,2],[3,7],[6,2],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0833333, 
+[ ["loss of reception detected","T",12,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["Connector_A_to_B","R",4,2,0],["B_receives_request_from_A","A",6,2,1],["B_sends_data_to_A","A",7,2,2],["TaskB","R",9,3,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[6,4],[6,9],[7,4],[7,9]],
+[[3,2],[3,7],[6,2],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.166667, 
+[ ["loss of reception detected","T",8,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["Connector_A_to_B","R",4,2,0],["TaskB","R",7,3,0] ],
+
+[[2,1],[2,4],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example07_Unconstrained_Stack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example07_Unconstrained_Stack.json
new file mode 100644
index 0000000..9b7375e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example07_Unconstrained_Stack.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.571429, 
+[ ["Stack","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.285714, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.142857, 
+[ ["Stack","R",1,0,0],["pop","A",2,0,1],["bang","A",3,0,2],["This event tries to pop empty Stack","T",4,1,1] ],
+
+[[2,1],[3,1],[4,1]],
+[[2,4],[3,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example08_Operational_Process.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example08_Operational_Process.json
new file mode 100644
index 0000000..603295a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example08_Operational_Process.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Command_and_Control","R",1,0,0],["Receive_distress_signal","A",2,0,2],["Pass_mission_information","A",3,0,3],["Acknowledge_search_plan","A",4,0,9],["Receive_relayed_survivor_location_and_situation","A",5,0,19],["On_Scene_Commander","R",6,1,0],["Receive_mission_information","A",7,1,3],["Relay_mission_information","A",8,1,4],["Attempt_contact_with_PID","A",9,1,5],["Assess_environmental_conditions","A",10,1,6],["Receive_environmental_conditions","A",11,1,8],["Provide_search_plan","A",12,1,9],["Communicate_search_plan_and_responsibilities","A",13,1,10],["Scan_environment_for_signs_of_PID","A",14,1,12],["Receive_updates_for_OSC","A",15,1,14],["Receive_PID_location_and_situation","A",16,1,18],["Relay_survivor_location_and_situation","A",17,1,19],["PID","R",18,2,0],["Send_distress_signal","A",19,2,1],["Identify_self_as_PID","A",20,2,15],["Present_for_rescue","A",21,2,17],["Physical_Environment","R",22,3,0],["Provide_environmental_conditions","A",23,3,7],["SAR_Assets","R",24,4,0],["Receive_relayed_mission_information","A",25,4,5],["Confirm_search_plan_and_responsibilities","A",26,4,11],["Provide_updates_to_OSC","A",28,4,13],["Spot_object_of_interest","A",29,4,14],["Maneuver_to_rescue_PID","A",30,4,16],["Notify_OSC_of_PID_location_and_situation","A",31,4,17] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[9,6],[10,6],[11,6],[12,6],[13,6],[14,6],[14,24],[15,6],[16,6],[17,6],[19,18],[20,18],[21,18],[23,22],[25,24],[26,24],[28,24],[29,24],[30,24],[31,24]],
+[[2,19],[3,2],[4,3],[4,12],[5,4],[5,17],[7,3],[8,7],[9,8],[10,9],[11,10],[11,23],[12,11],[13,12],[13,4],[14,13],[14,26],[15,14],[15,28],[16,15],[16,31],[17,16],[20,19],[20,29],[21,20],[21,30],[23,10],[25,8],[26,25],[26,13],[28,14],[29,28],[30,29],[30,20],[31,30]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example09_Employee_Employer.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example09_Employee_Employer.json
new file mode 100644
index 0000000..c4b0c22
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example09_Employee_Employer.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Employee","R",1,0,0],["SendArrivalDate","A",2,0,1],["MedicalCheck","A",3,0,2],["ReadyToWork","A",4,0,3],["Employer","R",5,1,0],["EmployeeArrival","A",6,1,1],["Fill_HR_DB","A",7,1,2],["ProvideComputer","A",10,1,3],["ProvideOffice","A",9,2,1] ],
+
+[[2,1],[3,1],[3,5],[4,1],[4,5],[6,5],[7,5],[9,5],[10,5]],
+[[3,2],[3,7],[4,3],[4,10],[4,3],[6,2],[7,6],[9,6],[10,9],[10,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example10_Pipe_Filter.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example10_Pipe_Filter.json
new file mode 100644
index 0000000..9e2b3d9
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example10_Pipe_Filter.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Producer","R",1,0,0],["Filter1","R",2,1,0],["Filter2","R",3,2,0],["Consumer","R",4,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.25, 
+[ ["1 messages did not reach Consumer","T",8,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["Filter1","R",3,2,0],["receive","A",4,2,1],["some messages have been lost in Filter1","T",5,2,2],["Filter2","R",6,3,0],["Consumer","R",7,4,0] ],
+
+[[2,1],[4,3],[5,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.125, 
+[ ["1 messages did not reach Consumer","T",10,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["Filter1","R",3,2,0],["receive","A",4,2,1],["send","A",5,2,2],["Filter2","R",6,3,0],["receive","A",7,3,2],["some messages have been lost in Filter2","T",8,3,3],["Consumer","R",9,4,0] ],
+
+[[2,1],[4,3],[5,3],[7,6],[8,6]],
+[[4,2],[5,4],[7,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["Filter1","R",3,1,0],["receive","A",4,1,1],["send","A",5,1,2],["Filter2","R",6,2,0],["receive","A",7,2,2],["send","A",8,2,3],["Consumer","R",9,3,0],["receive","A",10,3,3] ],
+
+[[2,1],[4,3],[5,3],[7,6],[8,6],[10,9]],
+[[4,2],[5,4],[7,5],[8,7],[10,8]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example11_Publish_Subscribe.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example11_Publish_Subscribe.json
new file mode 100644
index 0000000..7813f9a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example11_Publish_Subscribe.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Unsubscribe","A",4,0,4],["Subscribers","R",5,1,0],["Client","C",6,1,1],["Receive","A",8,1,3] ],
+
+[[2,1],[2,6],[3,1],[4,1],[4,6],[6,5],[8,6]],
+[[3,2],[4,3],[4,8],[8,2],[8,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example12_network_topology_ring.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example12_network_topology_ring.json
new file mode 100644
index 0000000..da8a613
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example12_network_topology_ring.json
@@ -0,0 +1,13 @@
+{"traces":[
+
+["U", 1, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1] ],
+
+[[2,1]],
+[],
+["left_neighbor_of", [2,2]],
+["right_neighbor_of", [2,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example13_FiniteStateDiagram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example13_FiniteStateDiagram.json
new file mode 100644
index 0000000..01d41ed
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example13_FiniteStateDiagram.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["The path: ","T",23,0,0],["Start","T",24,0,1],["S1","T",25,0,2],["a","T",26,0,3],["S3","T",27,0,4],["b","T",28,0,5],["S4","T",29,0,6],["a","T",30,0,7],["S2","T",31,0,8],["End","T",32,0,9],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,6],["a","A",8,2,7],["S2","A",9,2,8],["End","A",10,2,9],["S3_behavior","R",11,3,0],["S3","A",14,3,4],["S3_to_S4","C",15,3,5],["b","A",16,3,6],["S4_behavior","R",17,4,0],["S4","A",20,4,5] ],
+
+[[2,1],[3,1],[4,1],[4,11],[5,4],[7,6],[7,17],[8,7],[9,6],[10,6],[14,11],[15,11],[15,17],[16,15],[20,17]],
+[[3,2],[4,3],[7,20],[9,7],[10,9],[14,4],[15,14],[20,15]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["The path: ","T",26,0,0],["Start","T",27,0,1],["S1","T",28,0,2],["a","T",29,0,3],["S3","T",30,0,4],["a","T",31,0,5],["S3","T",32,0,6],["b","T",33,0,7],["S4","T",34,0,8],["a","T",35,0,9],["S2","T",36,0,10],["End","T",37,0,11],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,9],["a","A",8,2,10],["S2","A",9,2,11],["End","A",10,2,12],["S3_behavior","R",11,3,0],["S3","A",14,3,4],["S3_to_S3","C",15,3,5],["a","A",16,3,6],["S3","A",17,3,7],["S3_to_S4","C",18,3,8],["b","A",19,3,9],["S4_behavior","R",20,4,0],["S4","A",23,4,8] ],
+
+[[2,1],[3,1],[4,1],[4,11],[5,4],[7,6],[7,20],[8,7],[9,6],[10,6],[14,11],[15,11],[16,15],[17,11],[18,11],[18,20],[19,18],[23,20]],
+[[3,2],[4,3],[7,23],[9,7],[10,9],[14,4],[15,14],[17,15],[18,17],[23,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["The path: ","T",18,0,0],["Start","T",19,0,1],["S1","T",20,0,2],["a","T",21,0,3],["S4","T",22,0,4],["a","T",23,0,5],["S2","T",24,0,6],["End","T",25,0,7],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,5],["a","A",8,2,6],["S2","A",9,2,7],["End","A",10,2,8],["S3_behavior","R",11,3,0],["S4_behavior","R",12,4,0],["S4","A",15,4,4] ],
+
+[[2,1],[3,1],[4,1],[4,12],[5,4],[7,6],[7,12],[8,7],[9,6],[10,6],[15,12]],
+[[3,2],[4,3],[7,15],[9,7],[10,9],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["The path: ","T",18,0,0],["Start","T",19,0,1],["S1","T",20,0,2],["b","T",21,0,3],["S4","T",22,0,4],["a","T",23,0,5],["S2","T",24,0,6],["End","T",25,0,7],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,5],["a","A",8,2,6],["S2","A",9,2,7],["End","A",10,2,8],["S3_behavior","R",11,3,0],["S4_behavior","R",12,4,0],["S4","A",15,4,4] ],
+
+[[2,1],[3,1],[4,1],[4,12],[5,4],[7,6],[7,12],[8,7],[9,6],[10,6],[15,12]],
+[[3,2],[4,3],[7,15],[9,7],[10,9],[15,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example15_Petri_net.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example15_Petri_net.json
new file mode 100644
index 0000000..3b71bfa
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example15_Petri_net.json
@@ -0,0 +1,23 @@
+{"traces":[
+
+["U", 0.941176, 
+[ ["At the end of simulation place P1_behavior has 1 tokens","T",11,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",12,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",13,0,2],["At the end of simulation place P4_behavior has 1 tokens","T",14,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["T1_behavior","R",3,2,0],["P2_behavior","R",4,3,0],["P3_behavior","R",5,4,0],["get_token","A",6,4,1],["get_token","A",7,4,2],["T2_behavior","R",8,5,0],["P4_behavior","R",9,6,0],["get_token","A",10,6,1] ],
+
+[[2,1],[6,5],[7,5],[10,9]],
+[[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0588235, 
+[ ["At the end of simulation place P1_behavior has 0 tokens","T",30,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",31,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",32,0,2],["At the end of simulation place P4_behavior has 1 tokens","T",33,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["P1_sends_to_T1","C",3,1,2],["send_token","A",4,1,3],["T1_behavior","R",5,2,0],["T1_receives_from_P1","A",6,2,2],["T1_fires","A",7,2,3],["T1_sends_to_P2","C",8,2,4],["send_token","A",9,2,5],["T1_sends_to_P3","C",10,3,3],["send_token","A",11,3,4],["P2_behavior","R",12,4,0],["P2_receives_from_T1","C",13,4,5],["get_token","A",14,4,6],["P2_sends_to_T2","C",15,4,7],["send_token","A",16,4,8],["P3_behavior","R",17,5,0],["get_token","A",18,5,1],["get_token","A",19,5,2],["P3_receives_from_T1","C",20,5,4],["get_token","A",21,5,5],["P3_sends_to_T2","C",22,5,6],["send_token","A",23,5,7],["T2_behavior","R",24,6,0],["T2_receives_from_P2","A",25,6,8],["T2_fires","A",27,6,9],["T2_receives_from_P3","A",26,7,7],["P4_behavior","R",28,8,0],["get_token","A",29,8,1] ],
+
+[[2,1],[3,1],[4,3],[6,5],[7,5],[8,5],[9,8],[10,5],[11,10],[13,12],[14,13],[15,12],[16,15],[18,17],[19,17],[20,17],[21,20],[22,17],[23,22],[25,24],[26,24],[27,24],[29,28]],
+[[3,2],[6,3],[7,6],[8,7],[10,7],[13,8],[15,13],[19,18],[20,19],[20,10],[22,20],[25,15],[26,22],[27,25],[27,26]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["Petri net diagram",
+ [ [0, "P1_behavior"] ,[1, "Start"] ,[2, "T1_behavior"] ,[3, "P2_behavior"] ,[4, "P3_behavior"] ,[5, "T2_behavior"] ,[6, "P4_behavior"] ],
+ [ [0,2,"1"],[1,0,"initial 1 tokens"],[1,4,"initial 2 tokens"],[1,6,"initial 1 tokens"],[2,3,"1"],[2,4,"1"],[3,5,"1"],[4,5,"1"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example16_software_spiral_process.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example16_software_spiral_process.json
new file mode 100644
index 0000000..197273d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example16_software_spiral_process.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.666667, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_satisfied","A",4,0,5],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Spiral_process","R",5,1,0],["Initial_requirements","A",7,1,2],["Initial_design","C",8,1,3],["Architecture_design","A",9,1,4],["Detailed_design","A",10,1,6],["Coding","A",11,1,7],["Testing","A",12,1,8],["Delivery_of_the_system","A",15,1,9],["Architect","R",16,2,0],["Developers","R",21,3,0] ],
+
+[[2,1],[2,5],[2,16],[3,1],[3,5],[3,16],[4,1],[4,5],[7,5],[7,16],[8,5],[9,8],[9,16],[10,8],[10,21],[11,8],[11,21],[12,8],[12,21],[15,5]],
+[[3,2],[3,8],[3,9],[4,3],[7,2],[8,7],[9,7],[10,9],[11,10],[12,11],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_satisfied","A",6,0,12],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,12],["Spiral_process","R",7,1,0],["Initial_requirements","A",9,1,2],["Initial_design","C",10,1,3],["Architecture_design","A",11,1,4],["Detailed_design","A",12,1,6],["Coding","A",13,1,7],["Testing","A",14,1,8],["One_iteration","C",16,1,9],["Adjust_requirements","A",18,1,10],["Redesign","C",19,1,11],["Detailed_redesign","A",20,1,13],["Coding","A",21,1,14],["Testing","A",22,1,15],["Delivery_of_the_system","A",25,1,16],["Architect","R",26,2,0],["Developers","R",33,3,0] ],
+
+[[2,1],[2,7],[2,26],[3,1],[3,7],[3,26],[4,1],[4,16],[5,1],[5,16],[5,26],[6,1],[6,7],[9,7],[9,26],[10,7],[11,10],[11,26],[12,10],[12,33],[13,10],[13,33],[14,10],[14,33],[16,7],[18,16],[18,26],[19,16],[20,19],[20,33],[21,19],[21,33],[22,19],[22,33],[25,7]],
+[[3,2],[3,10],[3,11],[4,3],[5,4],[5,19],[5,18],[6,5],[6,16],[9,2],[10,9],[11,9],[12,11],[13,12],[14,13],[16,3],[18,4],[18,3],[19,18],[20,14],[21,20],[22,21],[25,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_satisfied","A",6,0,13],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,13],["Spiral_process","R",7,1,0],["Initial_requirements","A",9,1,2],["Initial_design","C",10,1,3],["Architecture_design","A",11,1,4],["Detailed_design","A",12,1,6],["Coding","A",13,1,7],["Testing","A",14,1,8],["One_iteration","C",16,1,9],["Adjust_requirements","A",18,1,10],["Redesign","C",19,1,11],["Architecture_redesign","A",20,1,12],["Detailed_redesign","A",21,1,14],["Coding","A",22,1,15],["Testing","A",23,1,16],["Delivery_of_the_system","A",26,1,17],["Architect","R",27,2,0],["Developers","R",35,3,0] ],
+
+[[2,1],[2,7],[2,27],[3,1],[3,7],[3,27],[4,1],[4,16],[5,1],[5,16],[5,27],[6,1],[6,7],[9,7],[9,27],[10,7],[11,10],[11,27],[12,10],[12,35],[13,10],[13,35],[14,10],[14,35],[16,7],[18,16],[18,27],[19,16],[20,19],[20,27],[21,19],[21,35],[22,19],[22,35],[23,19],[23,35],[26,7]],
+[[3,2],[3,10],[3,11],[4,3],[5,4],[5,19],[5,20],[6,5],[6,16],[9,2],[10,9],[11,9],[12,11],[13,12],[14,13],[16,3],[18,4],[18,3],[19,18],[20,18],[21,20],[21,14],[22,21],[23,22],[26,6]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example17_Dining_Philosophers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example17_Dining_Philosophers.json
new file mode 100644
index 0000000..e69de29
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example18_Workflow_pattern.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example18_Workflow_pattern.json
new file mode 100644
index 0000000..5b4c632
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example18_Workflow_pattern.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Phase1","R",1,0,0],["check_breathing","A",2,0,1],["check_pulse","A",3,1,1],["finish_first","A",4,1,2],["Triage","R",5,2,0],["identify_the_patient","A",6,2,2],["record_assessment_findings","A",7,2,3],["identify_the_priority","A",8,2,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5]],
+[[4,3],[6,4],[7,6],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Phase1","R",1,0,0],["check_breathing","A",2,0,1],["finish_first","A",3,0,2],["check_pulse","A",4,1,1],["Triage","R",5,2,0],["identify_the_patient","A",6,2,3],["record_assessment_findings","A",7,2,4],["identify_the_priority","A",8,2,5] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5]],
+[[3,2],[6,3],[7,6],[8,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example19_Consumers_Suppliers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example19_Consumers_Suppliers.json
new file mode 100644
index 0000000..98b4b9a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example19_Consumers_Suppliers.json
@@ -0,0 +1,22 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Sell","A",9,2,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[8,7],[9,8]],
+[[4,3],[4,9],[6,3],[9,6]],
+["Is_supplier_for", [8,2]],
+["related_to", [3,6],[6,9],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1] ],
+
+[[2,1],[3,2],[4,2],[4,8],[6,5],[8,7]],
+[[4,3],[4,6],[6,3]],
+["related_to", [3,6],[6,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example20_MP_model__reuse.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example20_MP_model__reuse.json
new file mode 100644
index 0000000..76bcb84
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example20_MP_model__reuse.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["cancel_access_request","A",7,1,3],["creds_invalid","A",6,2,3],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["abandon_access_request","A",12,2,4],["User","R",13,3,0],["login_fails","A",14,3,1] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[9,8],[9,13],[10,8],[10,13],[12,8],[12,13],[14,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[12,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["creds_valid","A",6,2,3],["access_granted","A",7,2,4],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["User","R",13,3,0],["login_succeeds","A",14,3,4],["work","A",15,3,5] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[7,8],[7,13],[9,8],[9,13],[10,8],[10,13],[14,13],[15,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[14,7],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["creds_valid","A",6,2,3],["access_granted","A",7,2,4],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["User","R",13,3,0],["login_succeeds","A",14,3,4],["cancel","A",15,3,5] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[7,8],[7,13],[9,8],[9,13],[10,8],[10,13],[14,13],[15,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[14,7],[15,14]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example21_compiler1.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example21_compiler1.json
new file mode 100644
index 0000000..a537d80
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example21_compiler1.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.111111, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Reduce","C",23,3,9],["Pop","A",24,3,10],["Push","A",25,3,11],["Put_node","A",26,3,12],["Parsing_complete","A",27,3,13],["Stack","C",28,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,28],[19,16],[20,19],[20,28],[21,19],[21,28],[22,16],[23,16],[24,23],[24,28],[25,23],[25,28],[26,16],[27,16],[28,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.888889, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Report_syntax_error","A",23,3,9],["Stack","C",24,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,24],[19,16],[20,19],[20,24],[21,19],[21,24],[22,16],[23,16],[24,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example22_compiler2.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example22_compiler2.json
new file mode 100644
index 0000000..2fd3fc8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example22_compiler2.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.111111, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Reduce","C",20,2,10],["Pop","A",21,2,11],["Push","A",22,2,12],["Put_node","A",23,2,13],["Parsing_complete","A",24,2,14],["Stack","C",25,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,25],[15,13],[16,13],[17,16],[17,25],[18,16],[18,25],[19,13],[20,13],[21,20],[21,25],[22,20],[22,25],[23,13],[24,13],[25,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.888889, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Report_syntax_error","A",20,2,10],["Stack","C",21,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,21],[15,13],[16,13],[17,16],[17,21],[18,16],[18,21],[19,13],[20,13],[21,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example23_number_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example23_number_attributes.json
new file mode 100644
index 0000000..33e6757
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example23_number_attributes.json
@@ -0,0 +1,75 @@
+{"traces":[
+
+["U", 0.25, 
+[ [" Trace #1","T",4,0,0],["Bought 0 items. Total purchase cost is: 0 average cost: -nan","T",5,0,1],["Buyer","R",1,1,0],["Shop_A","R",2,2,0],["Shop_B","R",3,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ [" Trace #2","T",6,0,0],["Bought 1 items. Total purchase cost is: 22 average cost: 22","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Shop_B","R",4,3,0],["Sell_Item_2","A",5,3,2] ],
+
+[[2,1],[5,4]],
+[[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ [" Trace #3","T",6,0,0],["Bought 1 items. Total purchase cost is: 30 average cost: 30","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Shop_B","R",4,3,0],["Sell_Item_3","A",5,3,2] ],
+
+[[2,1],[5,4]],
+[[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ [" Trace #4","T",6,0,0],["Bought 1 items. Total purchase cost is: 8 average cost: 8","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Sell_Item_1","A",4,2,1],["Shop_B","R",5,3,0] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ [" Trace #5","T",6,0,0],["Bought 1 items. Total purchase cost is: 20 average cost: 20","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Sell_Item_2","A",4,2,1],["Shop_B","R",5,3,0] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Trace #6","T",8,0,0],["Bought 2 items. Total purchase cost is: 30 average cost: 15","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Trace #7","T",8,0,0],["Bought 2 items. Total purchase cost is: 38 average cost: 19","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Trace #8","T",8,0,0],["Bought 2 items. Total purchase cost is: 42 average cost: 21","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Trace #9","T",8,0,0],["Bought 2 items. Total purchase cost is: 50 average cost: 25","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example24_Bayesian_probability.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example24_Bayesian_probability.json
new file mode 100644
index 0000000..0430a1d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example24_Bayesian_probability.json
@@ -0,0 +1,59 @@
+{"traces":[
+
+["U", 0.142857, 
+[ ["Probability of result RRR was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Red","A",3,1,2],["Select_Red","A",4,1,3],["RRR","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Red","A",3,1,2],["Select_Green","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Green","A",3,1,2],["Select_Red","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Green","A",3,1,2],["Select_Green","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Red","A",3,1,2],["Select_Red","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Red","A",3,1,2],["Select_Green","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Green","A",3,1,2],["Select_Red","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example25_interval_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example25_interval_attributes.json
new file mode 100644
index 0000000..b6ac592
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example25_interval_attributes.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["selected 1 items","T",4,0,0],["backpack weight is within interval [2 .. 5]","T",5,0,1],["Backpack","R",1,1,0],["item1","C",2,1,1],["selected item1 with weight [2 .. 5]","T",3,1,2] ],
+
+[[2,1],[3,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["selected 1 items","T",4,0,0],["backpack weight is within interval [10 .. 16]","T",5,0,1],["Backpack","R",1,1,0],["item2","C",2,1,1],["selected item2 with weight [10 .. 16]","T",3,1,2] ],
+
+[[2,1],[3,1]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example26_timing_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example26_timing_attributes.json
new file mode 100644
index 0000000..d30766e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example26_timing_attributes.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["   Worker start 0 duration 1 end 1","T",3,0,0],["   Work start 0 duration 1 end 1","T",4,0,1],["  Delay created by 0 visitors is 0","T",5,0,2],["Worker","R",1,1,0],["Work","C",2,1,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["   Worker start 0 duration [2 .. 3] end [2 .. 3]","T",4,0,0],["   Get_distracted start 0 duration [2 .. 3] end [2 .. 3]","T",5,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",6,0,2],["  Delay created by 1 visitors is [2 .. 3]","T",7,0,3],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2] ],
+
+[[2,1],[3,2]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example27_Railroad_Crossing.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example27_Railroad_Crossing.json
new file mode 100644
index 0000000..4013056
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example27_Railroad_Crossing.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Bar moved down by 5","T",12,0,0],["Train starts go through crossing at 5","T",13,0,1],["Train ends go through crossing at 15","T",14,0,2],["Bar starts go up at 15","T",15,0,3],["Crossing was successfully closed","T",16,0,4],["Train","R",1,1,0],["Enter_Restricted_Region","A",2,1,1],["Goes_through_Restricted_Region","A",3,1,2],["Enter_Crossing_Region","A",4,1,3],["Goes_through_Crossing_Region","C",5,1,4],["Leaves_Crossing_Region","A",6,1,5],["Crossing","R",7,2,0],["Move_Down","C",8,2,1],["Down","A",9,2,2],["Move_Up","C",10,2,5],["Up","A",11,2,6] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[11,7]],
+[[3,2],[4,3],[4,9],[5,4],[6,5],[8,2],[9,8],[10,9],[10,6],[11,10]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example28_MP_model_of_MP_architecture.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example28_MP_model_of_MP_architecture.json
new file mode 100644
index 0000000..0fbcab2
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example28_MP_model_of_MP_architecture.json
@@ -0,0 +1,135 @@
+{"traces":[
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #1","T",26,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["end_of_session","A",5,1,11],["MP_code_editor","R",6,2,0],["MP_GUI","R",8,3,0],["input_MP_code","A",10,3,3],["receive_json_file","A",11,3,8],["visualize_trace","A",12,3,9],["MP_parser","R",13,4,0],["perform_syntax_analysis","A",15,4,3],["write_abstract_syntax_tree","A",16,4,4],["Abstract_syntax_tree","R",17,5,0],["read_abstract_syntax_tree","A",19,5,4],["Trace_generator","R",20,6,0],["generate_Cpp_file","A",22,6,4],["run_Cpp_compiler","A",23,6,5],["run_executable","A",24,6,6],["produce_json_file","A",25,6,7] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[5,1],[10,8],[10,13],[11,8],[12,8],[15,13],[16,13],[16,17],[19,17],[19,20],[22,20],[23,20],[24,20],[25,20]],
+[[3,2],[4,3],[4,12],[5,4],[10,3],[11,10],[11,25],[12,11],[15,10],[16,15],[19,16],[22,19],[23,22],[24,23],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #2","T",28,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",11,3,3],["receive_json_file","A",12,3,8],["visualize_trace","A",13,3,9],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,3],["write_abstract_syntax_tree","A",18,4,4],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,4],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,4],["run_Cpp_compiler","A",25,6,5],["run_executable","A",26,6,6],["produce_json_file","A",27,6,7] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[5,1],[5,9],[6,1],[11,9],[11,15],[12,9],[13,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,13],[5,4],[5,13],[6,5],[11,3],[12,11],[12,27],[13,12],[17,11],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #3","T",18,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["end_of_session","A",5,1,5],["MP_code_editor","R",6,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",8,4,0],["input_MP_code","A",10,4,3],["MP_parser","R",12,5,0],["perform_syntax_analysis","A",14,5,3],["Abstract_syntax_tree","R",16,6,0],["Trace_generator","R",17,7,0] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[4,12],[4,8],[5,1],[10,8],[10,12],[14,12]],
+[[3,2],[4,3],[4,14],[4,10],[5,4],[10,3],[14,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #4","T",20,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",9,4,0],["input_MP_code","A",11,4,3],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,3],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[4,14],[4,9],[5,1],[5,9],[6,1],[11,9],[11,14],[16,14]],
+[[3,2],[4,3],[4,16],[4,11],[5,4],[6,5],[11,3],[16,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #5","T",26,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["end_of_session","A",5,1,11],["MP_code_editor","R",6,2,0],["MP_GUI","R",8,3,0],["input_MP_code","A",10,3,3],["receive_json_file","A",11,3,8],["visualize_trace","A",12,3,9],["MP_parser","R",13,4,0],["perform_syntax_analysis","A",15,4,3],["write_abstract_syntax_tree","A",16,4,4],["Abstract_syntax_tree","R",17,5,0],["read_abstract_syntax_tree","A",19,5,4],["Trace_generator","R",20,6,0],["generate_Cpp_file","A",22,6,4],["run_Cpp_compiler","A",23,6,5],["run_executable","A",24,6,6],["produce_json_file","A",25,6,7] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[5,1],[10,8],[10,13],[11,8],[12,8],[15,13],[16,13],[16,17],[19,17],[19,20],[22,20],[23,20],[24,20],[25,20]],
+[[3,2],[4,3],[4,12],[5,4],[10,3],[11,10],[11,25],[12,11],[15,10],[16,15],[19,16],[22,19],[23,22],[24,23],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #6","T",28,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",11,3,3],["receive_json_file","A",12,3,8],["visualize_trace","A",13,3,9],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,3],["write_abstract_syntax_tree","A",18,4,4],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,4],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,4],["run_Cpp_compiler","A",25,6,5],["run_executable","A",26,6,6],["produce_json_file","A",27,6,7] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[5,1],[5,9],[6,1],[11,9],[11,15],[12,9],[13,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,13],[5,4],[5,13],[6,5],[11,3],[12,11],[12,27],[13,12],[17,11],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #7","T",18,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["end_of_session","A",5,1,5],["MP_code_editor","R",6,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",8,4,0],["input_MP_code","A",10,4,3],["MP_parser","R",12,5,0],["perform_syntax_analysis","A",14,5,3],["Abstract_syntax_tree","R",16,6,0],["Trace_generator","R",17,7,0] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[4,12],[4,8],[5,1],[10,8],[10,12],[14,12]],
+[[3,2],[4,3],[4,14],[4,10],[5,4],[10,3],[14,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #8","T",20,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",9,4,0],["input_MP_code","A",11,4,3],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,3],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[4,14],[4,9],[5,1],[5,9],[6,1],[11,9],[11,14],[16,14]],
+[[3,2],[4,3],[4,16],[4,11],[5,4],[6,5],[11,3],[16,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #9","T",28,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",12,3,4],["receive_json_file","A",13,3,9],["visualize_trace","A",14,3,10],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,4],["write_abstract_syntax_tree","A",18,4,5],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,5],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,5],["run_Cpp_compiler","A",25,6,6],["run_executable","A",26,6,7],["produce_json_file","A",27,6,8] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[6,1],[12,9],[12,15],[13,9],[14,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,2],[5,4],[5,14],[6,5],[12,4],[13,12],[13,27],[14,13],[17,12],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #10","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["end_of_session","A",7,1,13],["MP_code_editor","R",8,2,0],["MP_GUI","R",10,3,0],["input_MP_code","A",13,3,4],["receive_json_file","A",14,3,9],["visualize_trace","A",15,3,10],["MP_parser","R",17,4,0],["perform_syntax_analysis","A",19,4,4],["write_abstract_syntax_tree","A",20,4,5],["Abstract_syntax_tree","R",21,5,0],["read_abstract_syntax_tree","A",23,5,5],["Trace_generator","R",24,6,0],["generate_Cpp_file","A",26,6,5],["run_Cpp_compiler","A",27,6,6],["run_executable","A",28,6,7],["produce_json_file","A",29,6,8] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[6,1],[6,10],[7,1],[13,10],[13,17],[14,10],[15,10],[19,17],[20,17],[20,21],[23,21],[23,24],[26,24],[27,24],[28,24],[29,24]],
+[[3,2],[4,3],[4,2],[5,4],[5,15],[6,5],[6,15],[7,6],[13,4],[14,13],[14,29],[15,14],[19,13],[20,19],[23,20],[26,23],[27,26],[28,27],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #11","T",20,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",9,4,0],["input_MP_code","A",12,4,4],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,4],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[5,14],[5,9],[6,1],[12,9],[12,14],[16,14]],
+[[3,2],[4,3],[4,2],[5,4],[5,16],[5,12],[6,5],[12,4],[16,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #12","T",22,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["end_of_session","A",7,1,7],["MP_code_editor","R",8,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",10,4,0],["input_MP_code","A",13,4,4],["MP_parser","R",16,5,0],["perform_syntax_analysis","A",18,5,4],["Abstract_syntax_tree","R",20,6,0],["Trace_generator","R",21,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[5,16],[5,10],[6,1],[6,10],[7,1],[13,10],[13,16],[18,16]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[5,13],[6,5],[7,6],[13,4],[18,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #13","T",28,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",12,3,4],["receive_json_file","A",13,3,9],["visualize_trace","A",14,3,10],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,4],["write_abstract_syntax_tree","A",18,4,5],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,5],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,5],["run_Cpp_compiler","A",25,6,6],["run_executable","A",26,6,7],["produce_json_file","A",27,6,8] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[6,1],[12,9],[12,15],[13,9],[14,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,2],[5,4],[5,14],[6,5],[12,4],[13,12],[13,27],[14,13],[17,12],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #14","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["end_of_session","A",7,1,13],["MP_code_editor","R",8,2,0],["MP_GUI","R",10,3,0],["input_MP_code","A",13,3,4],["receive_json_file","A",14,3,9],["visualize_trace","A",15,3,10],["MP_parser","R",17,4,0],["perform_syntax_analysis","A",19,4,4],["write_abstract_syntax_tree","A",20,4,5],["Abstract_syntax_tree","R",21,5,0],["read_abstract_syntax_tree","A",23,5,5],["Trace_generator","R",24,6,0],["generate_Cpp_file","A",26,6,5],["run_Cpp_compiler","A",27,6,6],["run_executable","A",28,6,7],["produce_json_file","A",29,6,8] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[6,1],[6,10],[7,1],[13,10],[13,17],[14,10],[15,10],[19,17],[20,17],[20,21],[23,21],[23,24],[26,24],[27,24],[28,24],[29,24]],
+[[3,2],[4,3],[4,2],[5,4],[5,15],[6,5],[6,15],[7,6],[13,4],[14,13],[14,29],[15,14],[19,13],[20,19],[23,20],[26,23],[27,26],[28,27],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #15","T",20,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",9,4,0],["input_MP_code","A",12,4,4],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,4],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[5,14],[5,9],[6,1],[12,9],[12,14],[16,14]],
+[[3,2],[4,3],[4,2],[5,4],[5,16],[5,12],[6,5],[12,4],[16,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ [" Scope 1 Trace #16","T",22,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["end_of_session","A",7,1,7],["MP_code_editor","R",8,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",10,4,0],["input_MP_code","A",13,4,4],["MP_parser","R",16,5,0],["perform_syntax_analysis","A",18,5,4],["Abstract_syntax_tree","R",20,6,0],["Trace_generator","R",21,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[5,16],[5,10],[6,1],[6,10],[7,1],[13,10],[13,16],[18,16]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[5,13],[6,5],[7,6],[13,4],[18,13]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["main component interactions",
+ [ [0, "User"] ,[1, "MP_code_editor"] ,[2, "MP_GUI"] ,[3, "MP_parser"] ,[4, "Abstract_syntax_tree"] ,[5, "Trace_generator"] ],
+ [],
+ [ [0,1,"interacts with"],[0,2,"interacts with"],[0,3,"interacts with"],[1,2,"interacts with"],[2,3,"interacts with"],[2,5,"interacts with"],[3,4,"interacts with"],[3,5,"interacts with"],[4,5,"interacts with"]] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example29_stack1_Bayesian_probability.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example29_stack1_Bayesian_probability.json
new file mode 100644
index 0000000..e17c044
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example29_stack1_Bayesian_probability.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.571429, 
+[ ["Trace 1 for scope 1 has probability 0.5","T",2,0,0],["Stack","R",1,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.428571, 
+[ ["push with probability 0.5","T",3,0,0],["Trace 2 for scope 1 has probability 0.5","T",4,0,1],["Stack","R",1,1,0],["push","A",2,1,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example30_Local_Report.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example30_Local_Report.json
new file mode 100644
index 0000000..b3a9401
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example30_Local_Report.json
@@ -0,0 +1,33 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0] ],
+
+[[2,1],[2,3]],
+[]
+,{"VIEWS":[ 
+{"REPORT":["scope= 1 trace 1","#writing= 1","#reading= 0","#working= 0"]}
+ ]}
+],
+
+["U", 0.25, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1] ],
+
+[[2,1],[2,3],[6,5]],
+[]
+,{"VIEWS":[ 
+{"REPORT":["scope= 1 trace 2","#writing= 1","#reading= 0","#working= 1"]}
+ ]}
+],
+
+["U", 0.25, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,6]],
+[[5,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 1 trace 3","#writing= 1","#reading= 1","#working= 0"]}
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example31_Global_report.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example31_Global_report.json
new file mode 100644
index 0000000..6c19a21
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example31_Global_report.json
@@ -0,0 +1,29 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["scope= 1","trace 3 sent 1 received 0 ratio 0","total traces 3"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example32_Local_graph.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example32_Local_graph.json
new file mode 100644
index 0000000..9257a99
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example32_Local_graph.json
@@ -0,0 +1,51 @@
+{"traces":[
+
+["U", 0.166667, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["finish","A",4,0,3],["winner","A",5,0,4],["Judge","R",6,1,0],["provide_start_signal","A",7,1,1],["watch","A",8,1,2] ],
+
+[[2,1],[3,2],[4,2],[4,6],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[4,8],[5,4],[8,7]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 1 for scope 1",
+ [ [0, "0 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.333333, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Judge","R",5,1,0],["provide_start_signal","A",6,1,1],["watch","A",7,1,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[7,5]],
+[[3,6],[4,3],[7,6]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 2 for scope 1",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.166667, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["finish","A",5,0,4],["winner","A",6,0,5],["Judge","R",7,1,0],["provide_start_signal","A",8,1,1],["watch","A",9,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,7],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[5,9],[6,5],[9,8]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 3 for scope 1",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.333333, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Judge","R",6,1,0],["provide_start_signal","A",7,1,1],["watch","A",8,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[5,4],[8,7]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 4 for scope 1",
+ [],
+ [],
+ [] ]} ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example34_Graph_as_data_structure.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example34_Graph_as_data_structure.json
new file mode 100644
index 0000000..4c0993d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example34_Graph_as_data_structure.json
@@ -0,0 +1,33 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["A","R",1,0,0],["B","R",2,1,0],["c","A",3,1,1] ],
+
+[[3,2]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Total event count as Report","A event count: 3","B event count: 3","c event count: 3","a event count: 1","b event count: 1"]}
+,
+{"GRAPH":["Total event count as graph for scope 1",
+ [ [0, "A"] ,[1, "trace 1"] ,[2, "B"] ,[3, "c"] ,[4, "trace 2"] ,[5, "a"] ,[6, "trace 3"] ,[7, "b"] ,[8, "3"] ,[9, "3"] ,[10, "3"] ,[11, "1"] ,[12, "1"] ],
+ [ [0,1,"in trace"],[0,4,"in trace"],[0,6,"in trace"],[0,8,"total count"],[2,1,"in trace"],[2,4,"in trace"],[2,6,"in trace"],[2,9,"total count"],[3,1,"in trace"],[3,4,"in trace"],[3,6,"in trace"],[3,10,"total count"],[5,4,"in trace"],[5,11,"total count"],[7,6,"in trace"],[7,12,"total count"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example35_Finite_State_Diagram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example35_Finite_State_Diagram.json
new file mode 100644
index 0000000..0f8ce65
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example35_Finite_State_Diagram.json
@@ -0,0 +1,55 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,8],["a","A",10,1,9],["S2","A",11,1,10],["S2_to_End","C",12,1,11],["empty","A",13,1,12],["End","A",14,1,13],["S3_behavior","R",15,2,0],["S3","A",18,2,6],["S3_to_S4","C",19,2,7],["b","A",20,2,8],["S4_behavior","R",21,3,0],["S4","A",24,3,7] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,15],[7,6],[9,8],[9,21],[10,9],[11,8],[12,8],[13,12],[14,8],[18,15],[19,15],[19,21],[20,19],[24,21]],
+[[3,2],[5,3],[6,5],[9,24],[11,9],[12,11],[14,12],[18,6],[19,18],[24,19]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.333333, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,11],["a","A",10,1,12],["S2","A",11,1,13],["S2_to_End","C",12,1,14],["empty","A",13,1,15],["End","A",14,1,16],["S3_behavior","R",15,2,0],["S3","A",18,2,6],["S3_to_S3","C",19,2,7],["a","A",20,2,8],["S3","A",21,2,9],["S3_to_S4","C",22,2,10],["b","A",23,2,11],["S4_behavior","R",24,3,0],["S4","A",27,3,10] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,15],[7,6],[9,8],[9,24],[10,9],[11,8],[12,8],[13,12],[14,8],[18,15],[19,15],[20,19],[21,15],[22,15],[22,24],[23,22],[27,24]],
+[[3,2],[5,3],[6,5],[9,27],[11,9],[12,11],[14,12],[18,6],[19,18],[21,19],[22,21],[27,22]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.166667, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,7],["a","A",10,1,8],["S2","A",11,1,9],["S2_to_End","C",12,1,10],["empty","A",13,1,11],["End","A",14,1,12],["S3_behavior","R",15,2,0],["S4_behavior","R",16,3,0],["S4","A",19,3,6] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,16],[7,6],[9,8],[9,16],[10,9],[11,8],[12,8],[13,12],[14,8],[19,16]],
+[[3,2],[5,3],[6,5],[9,19],[11,9],[12,11],[14,12],[19,6]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.166667, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,7],["a","A",10,1,8],["S2","A",11,1,9],["S2_to_End","C",12,1,10],["empty","A",13,1,11],["End","A",14,1,12],["S3_behavior","R",15,2,0],["S4_behavior","R",16,3,0],["S4","A",19,3,6] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,16],[7,6],[9,8],[9,16],[10,9],[11,8],[12,8],[13,12],[14,8],[19,16]],
+[[3,2],[5,3],[6,5],[9,19],[11,9],[12,11],[14,12],[19,6]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"empty"]],
+ [] ]} ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["State transition diagram",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[1,3,"a"],[1,3,"b"],[2,3,"b"],[2,2,"a"],[3,4,"a"],[4,5,"empty"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example36_Statechart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example36_Statechart.json
new file mode 100644
index 0000000..8c4ae6f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example36_Statechart.json
@@ -0,0 +1,39 @@
+{"traces":[
+
+["U", 0.842105, 
+[ ["Customer","R",1,0,0],["ATM_system","R",2,1,0],["Idle","A",3,1,1],["Data_Base","R",4,2,0] ],
+
+[[3,2]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0263158, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["get_money","A",5,0,7],["retrieve_card","A",6,0,8],["ATM_system","R",7,1,0],["Idle","A",8,1,1],["read_card","A",9,1,2],["validate_id","A",10,1,3],["id_successful","A",11,1,4],["check_balance","A",12,1,5],["sufficient_balance","A",13,1,6],["dispense_money","A",14,1,7],["Idle","A",15,1,8],["Data_Base","R",16,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[10,16],[11,7],[12,7],[12,16],[13,7],[14,7],[15,7]],
+[[3,2],[3,11],[4,3],[5,4],[5,14],[6,5],[9,8],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0263158, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["not_sufficient_funds","A",5,0,6],["retrieve_card","A",6,0,7],["ATM_system","R",7,1,0],["Idle","A",8,1,1],["read_card","A",9,1,2],["validate_id","A",10,1,3],["id_successful","A",11,1,4],["check_balance","A",12,1,5],["unsufficient_balance","A",13,1,6],["Idle","A",14,1,7],["Data_Base","R",15,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[10,15],[11,7],[12,7],[12,15],[13,7],[14,7]],
+[[3,2],[3,11],[4,3],[5,4],[5,13],[6,5],[9,8],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.105263, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,4],["retrieve_card","A",4,0,5],["ATM_system","R",5,1,0],["Idle","A",6,1,1],["read_card","A",7,1,2],["validate_id","A",8,1,3],["id_failed","A",9,1,4],["Idle","A",10,1,5],["Data_Base","R",11,2,0] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5],[8,11],[9,5],[10,5]],
+[[3,2],[3,9],[4,3],[7,6],[7,2],[8,7],[9,8],[10,9]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["ATM state transition diagram",
+ [ [0, "Idle"] ,[1, "id_successful"] ,[2, "sufficient_balance"] ,[3, "unsufficient_balance"] ,[4, "id_failed"] ],
+ [ [0,1,"insert_card"],[0,4,"insert_card"],[1,2,"request_withdrawal"],[1,3,"request_withdrawal"],[2,0,"retrieve_card"],[3,0,"retrieve_card"],[4,0,"retrieve_card"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example37_GLOBAL_query.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example37_GLOBAL_query.json
new file mode 100644
index 0000000..8b31576
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example37_GLOBAL_query.json
@@ -0,0 +1,21 @@
+{"traces":[
+
+["M", 0.8, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.2, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Scope 1","Total 2 traces","In 1 of traces at least 75% of sent messages have been received","At the given scope probability for at least 75% messages to pass through is 0.8"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example38_knapsack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example38_knapsack.json
new file mode 100644
index 0000000..00cb209
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example38_knapsack.json
@@ -0,0 +1,37 @@
+{"traces":[
+
+["U", 0.25, 
+[ ["Best result so far: 0","T",4,0,0],["A","R",1,1,0],["B","R",2,2,0],["C","R",3,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 5","T",5,0,0],["A","R",1,1,0],["B","R",2,2,0],["C","R",3,3,0],["Item_C","A",4,3,1] ],
+
+[[4,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 8","T",6,0,0],["A","R",1,1,0],["B","R",2,2,0],["Item_B","A",3,2,1],["C","R",4,3,0],["Item_C","A",5,3,1] ],
+
+[[3,2],[5,4]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 10","T",7,0,0],["A","R",1,1,0],["Item_A","A",2,1,1],["B","R",3,2,0],["Item_B","A",4,2,1],["C","R",5,3,0],["Item_C","A",6,3,1] ],
+
+[[2,1],[4,3],[6,5]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Best knapsack","Weight limit 11","Single item's weight: A= 2 B= 3 C= 5","For scope 1 best packing is 10","Pack 1 of A, 1 of B, 1 of C"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example39_turtles.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example39_turtles.json
new file mode 100644
index 0000000..0149492
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example39_turtles.json
@@ -0,0 +1,107 @@
+{"traces":[
+
+["U", 0.0769231, 
+[ ["moving parallel","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["1 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Telling_the_truth","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["1 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Telling_the_truth","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Telling_the_truth","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Telling_the_truth","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example40_web_browsers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example40_web_browsers.json
new file mode 100644
index 0000000..4a0670c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example40_web_browsers.json
@@ -0,0 +1,33 @@
+{"traces":[
+
+["U", 0.964286, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,2],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Send_Response","A",6,1,2],["Bad_Server","R",7,2,0] ],
+
+[[2,1],[3,1],[5,4],[6,5]],
+[[3,2],[3,6],[5,2]],
+["causes", [2,5],[6,3]],
+["is_response_to", [5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00892857, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,2],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Send_Response","A",6,1,2],["Response","C",7,1,3],["Send_Response","A",8,1,4],["Bad_Server","R",9,2,0],["Request","A",10,2,1],["Process_Response","A",11,2,4] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,4],[8,7],[10,9],[11,9]],
+[[3,2],[3,6],[5,2],[7,5],[7,10],[11,10],[11,8]],
+["causes", [2,5],[6,3],[8,11],[10,7]],
+["is_response_to", [5,2],[7,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0267857, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,3],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Request","A",6,1,2],["Send_Response","A",7,1,3],["Process_Response","A",8,1,4],["Bad_Server","R",9,2,0],["Response","C",10,2,2],["Redirect","A",11,2,3],["Send_Response","A",12,2,4] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,5],[8,4],[10,9],[11,10],[12,10]],
+[[3,2],[3,7],[5,2],[7,6],[8,5],[8,12],[10,6],[12,11]],
+["causes", [2,5],[5,6],[6,10],[7,3],[12,8]],
+["is_response_to", [5,2],[10,6]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example41_Replay_Attack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example41_Replay_Attack.json
new file mode 100644
index 0000000..888350e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example41_Replay_Attack.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["Network","R",3,1,0],["message_in_transit","A",4,1,2],["Eve","R",5,2,0],["eavesesdrops_message","A",6,2,2],["presents_Alice_password","A",7,2,4],["talks","A",8,2,5],["Bob","R",9,3,0],["requests_password_from_Alice","A",10,3,1],["receives_password_from_Alice","A",11,3,3],["asks_for_password","A",12,3,4] ],
+
+[[2,1],[4,3],[6,5],[7,5],[8,5],[8,9],[10,9],[11,9],[12,9]],
+[[2,10],[4,2],[6,4],[7,6],[7,12],[8,7],[8,12],[11,10],[11,4],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["presents_Alice_password","A",3,0,5],["talks","A",4,0,6],["Network","R",5,1,0],["message_in_transit","A",6,1,2],["Eve","R",7,2,0],["eavesesdrops_message","A",8,2,2],["presents_Alice_password","A",9,2,7],["talks","A",10,2,8],["Bob","R",11,3,0],["requests_password_from_Alice","A",12,3,1],["receives_password_from_Alice","A",13,3,3],["asks_for_password","A",14,3,4],["asks_for_password","A",16,3,7] ],
+
+[[2,1],[3,1],[4,1],[4,11],[6,5],[8,7],[9,7],[10,7],[10,11],[12,11],[13,11],[14,11],[16,11]],
+[[2,12],[3,2],[3,14],[4,3],[4,14],[6,2],[8,6],[9,8],[9,16],[10,9],[10,16],[13,12],[13,6],[14,13],[16,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example42_Bar_Chart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example42_Bar_Chart.json
new file mode 100644
index 0000000..63cc0f5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example42_Bar_Chart.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 1, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["b","A",3,0,2],["c","A",4,0,3],["a","A",5,0,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Trace 1", 
+"tabs": [ "event_name","total_number"],
+ "rows": [ [ "A",1],[ "a",2],[ "b",1],[ "c",1]] } }
+,
+{"BAR_CHART": { "title": "Trace 1 chart", 
+"tabs": [ "event_name","total_number"], "X_AXIS": "event_name","ROTATE": 0, 
+  "rows": [ [ "A",1],[ "a",2],[ "b",1],[ "c",1]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example43_Histogram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example43_Histogram.json
new file mode 100644
index 0000000..330822b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example43_Histogram.json
@@ -0,0 +1,39 @@
+{"traces":[
+
+["U", 0.2, 
+[ ["A","R",1,0,0],["a1","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.3, 
+[ ["A","R",1,0,0],["a2","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["A","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["A","R",1,0,0],["a3","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"BAR_CHART": { "title": "Trace probabilities", 
+"tabs": [ "probability_interval","trace_count"], "X_AXIS": "probability_interval","ROTATE": 0, 
+  "rows": [ [ "[0..0.1)",0],[ "[0.1..0.2)",0],[ "[0.2..0.3)",3],[ "[0.3..0.4)",1],[ "[0.4..0.5)",0],[ "[0.5..0.6)",0],[ "[0.6..0.7)",0],[ "[0.7..0.8)",0],[ "[0.8..0.9)",0],[ "[0.9..1)",0]] } }
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example44_Gantt_Chart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example44_Gantt_Chart.json
new file mode 100644
index 0000000..f5bf362
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example44_Gantt_Chart.json
@@ -0,0 +1,15 @@
+{"traces":[
+
+["U", 1, 
+[ ["A","R",1,0,0],["a1","A",2,0,1],["a2","A",3,0,2],["B","R",4,1,0],["b1","A",5,1,1],["b2","A",7,1,2] ],
+
+[[2,1],[3,1],[3,4],[5,4],[7,4]],
+[[3,2],[3,5],[7,3]]
+,{"VIEWS":[ 
+{"BAR_CHART": { "title": "Example of Gantt Chart", 
+"tabs": [ "event_name","start_time","duration_time"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "A",0,8],[ "a1",0,3],[ "a2",3,5],[ "B",0,10],[ "b1",0,1],[ "b2",8,2]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example45_Martian_Lander.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example45_Martian_Lander.json
new file mode 100644
index 0000000..a38fa48
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_1/Example45_Martian_Lander.json
@@ -0,0 +1,54 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Running Timer1","T",22,0,0],["Landing complete at 30","T",23,0,1],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,6],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["IOINT","A",15,3,4],["Lands","A",16,3,5],["stop_Timer2","A",18,3,6],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",19,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,19],[13,8],[14,8],[15,8],[16,8],[18,8],[18,19]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,16],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,15],[18,16],[18,12]],
+["alert", [22,1],[23,16]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",50,0,50],[ "ADJM",10,20,30],[ "Lands",30,0,30]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",50,0],[ "ADJM",10,20],[ "Lands",30,0]] } }
+ ]}
+],
+
+["U", 0.25, 
+[ ["Running Timer1","T",25,0,0],["Emergency landing started at 101","T",26,0,1],["Landing complete at 111","T",27,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,8],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["TMRINT","A",15,3,4],["IEM","A",16,3,5],["Emergency_Landing","C",17,3,6],["Lands","A",18,3,7],["stop_Timer2","A",20,3,8],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",21,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,21],[13,8],[14,8],[15,8],[15,21],[16,8],[17,8],[18,8],[20,8],[20,21]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,18],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[15,12],[16,15],[17,16],[18,17],[20,18],[20,15]],
+["alert", [25,1],[26,15],[27,18]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",111,0,111],[ "ADJM",10,20,30],[ "Emergency_Landing",111,0,111],[ "Lands",111,0,111]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",111,0],[ "ADJM",10,20],[ "Emergency_Landing",111,0],[ "Lands",111,0]] } }
+ ]}
+],
+
+["U", 0.25, 
+[ ["Running Timer1","T",26,0,0],["Emergency landing started at 101","T",27,0,1],["Landing complete at 121","T",28,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,9],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["TMRINT","A",15,3,4],["IEM","A",16,3,5],["Emergency_Landing","C",17,3,6],["fire_RRM","A",18,3,7],["Lands","A",19,3,8],["stop_Timer2","A",21,3,9],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",22,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,22],[13,8],[14,8],[15,8],[15,22],[16,8],[17,8],[18,17],[19,8],[21,8],[21,22]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,19],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[15,12],[16,15],[17,16],[19,17],[21,19],[21,15]],
+["alert", [26,1],[27,15],[28,19]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",121,0,121],[ "ADJM",10,20,30],[ "Emergency_Landing",111,10,121],[ "fire_RRM",111,10,121],[ "Lands",121,0,121]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",121,0],[ "ADJM",10,20],[ "Emergency_Landing",111,10],[ "fire_RRM",111,10],[ "Lands",121,0]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01_simple_message_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01_simple_message_flow.json
new file mode 100644
index 0000000..45c5744
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01_simple_message_flow.json
@@ -0,0 +1,27 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.333333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01a_unreliable_message_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01a_unreliable_message_flow.json
new file mode 100644
index 0000000..2887f72
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example01a_unreliable_message_flow.json
@@ -0,0 +1,59 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example02_Data_flow.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example02_Data_flow.json
new file mode 100644
index 0000000..867e720
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example02_Data_flow.json
@@ -0,0 +1,227 @@
+{"traces":[
+
+["U", 0.133333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0] ],
+
+[[2,1],[2,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1] ],
+
+[[2,1],[2,3],[6,5]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1],["working","A",7,2,2] ],
+
+[[2,1],[2,3],[6,5],[7,5]],
+[[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,6]],
+[[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,3],[5,3],[5,6],[8,6]],
+[[5,2],[8,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[2,3],[5,3],[5,6],[7,6]],
+[[5,2],[5,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["reading","A",6,1,2],["Reader","R",7,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,7],[6,3],[6,7]],
+[[5,2],[6,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0] ],
+
+[[2,1],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[3,1],[3,4],[7,6]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1],["working","A",8,2,2] ],
+
+[[2,1],[3,1],[3,4],[7,6],[8,6]],
+[[3,2],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7]],
+[[3,2],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0],["working","A",9,2,2] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7],[9,7]],
+[[3,2],[6,3],[9,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7],[8,7]],
+[[3,2],[6,3],[6,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["reading","A",7,1,3],["Reader","R",8,2,0] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,8],[7,4],[7,8]],
+[[3,2],[6,3],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0] ],
+
+[[2,1],[2,4],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[2,4],[3,1],[7,6]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1],["working","A",8,2,2] ],
+
+[[2,1],[2,4],[3,1],[7,6],[8,6]],
+[[3,2],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7]],
+[[3,2],[6,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0],["working","A",9,2,1] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7],[9,7]],
+[[3,2],[6,2],[9,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7],[8,7]],
+[[3,2],[6,2],[6,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["reading","A",7,1,2],["Reader","R",8,2,0] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,8],[7,4],[7,8]],
+[[3,2],[6,2],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,4],[3,1],[3,4],[8,7]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0],["working","A",8,2,1],["working","A",9,2,2] ],
+
+[[2,1],[2,4],[3,1],[3,4],[8,7],[9,7]],
+[[3,2],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8]],
+[[3,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0],["working","A",10,2,2] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8],[10,8]],
+[[3,2],[7,3],[10,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0],["working","A",9,2,1] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8],[9,8]],
+[[3,2],[7,3],[7,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["reading","A",8,1,3],["Reader","R",9,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,9],[8,4],[8,9]],
+[[3,2],[7,3],[8,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example03_ATM_withdrawal.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example03_ATM_withdrawal.json
new file mode 100644
index 0000000..aa0fc03
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example03_ATM_withdrawal.json
@@ -0,0 +1,107 @@
+{"traces":[
+
+["U", 0.817891, 
+[ ["Customer","R",1,0,0],["ATM_system","R",2,1,0],["Data_Base","R",3,2,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0255591, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["get_money","A",5,0,6],["ATM_system","R",6,1,0],["read_card","A",7,1,1],["validate_id","A",8,1,2],["id_successful","A",9,1,3],["check_balance","A",10,1,4],["sufficient_balance","A",11,1,5],["dispense_money","A",12,1,6],["Data_Base","R",13,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[8,13],[9,6],[10,6],[10,13],[11,6],[12,6]],
+[[3,2],[3,9],[4,3],[5,4],[5,12],[7,2],[8,7],[9,8],[10,9],[10,8],[10,4],[11,10],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0255591, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["not_sufficient_funds","A",5,0,5],["ATM_system","R",6,1,0],["read_card","A",7,1,1],["validate_id","A",8,1,2],["id_successful","A",9,1,3],["check_balance","A",10,1,4],["unsufficient_balance","A",11,1,5],["Data_Base","R",12,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[8,12],[9,6],[10,6],[10,12],[11,6]],
+[[3,2],[3,9],[4,3],[5,4],[5,11],[7,2],[8,7],[9,8],[10,9],[10,8],[10,4],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.102236, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,3],["ATM_system","R",4,1,0],["read_card","A",5,1,1],["validate_id","A",6,1,2],["id_failed","A",7,1,3],["Data_Base","R",8,2,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[6,8],[7,4]],
+[[3,2],[3,7],[5,2],[6,5],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["get_money","A",5,0,6],["insert_card","A",6,0,7],["identification_succeeds","A",7,0,9],["request_withdrawal","A",8,0,10],["get_money","A",9,0,12],["ATM_system","R",10,1,0],["read_card","A",11,1,1],["validate_id","A",12,1,2],["id_successful","A",13,1,3],["check_balance","A",14,1,4],["sufficient_balance","A",15,1,5],["dispense_money","A",16,1,6],["read_card","A",17,1,7],["validate_id","A",18,1,8],["id_successful","A",19,1,9],["check_balance","A",20,1,10],["sufficient_balance","A",21,1,11],["dispense_money","A",22,1,12],["Data_Base","R",23,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[12,23],[13,10],[14,10],[14,23],[15,10],[16,10],[17,10],[18,10],[18,23],[19,10],[20,10],[20,23],[21,10],[22,10]],
+[[3,2],[3,13],[4,3],[5,4],[5,16],[6,5],[7,6],[7,19],[8,7],[9,8],[9,22],[11,2],[12,11],[13,12],[14,13],[14,12],[14,4],[15,14],[16,15],[17,16],[17,6],[18,17],[18,14],[19,18],[20,19],[20,18],[20,8],[21,20],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["get_money","A",5,0,6],["insert_card","A",6,0,7],["identification_succeeds","A",7,0,9],["request_withdrawal","A",8,0,10],["not_sufficient_funds","A",9,0,11],["ATM_system","R",10,1,0],["read_card","A",11,1,1],["validate_id","A",12,1,2],["id_successful","A",13,1,3],["check_balance","A",14,1,4],["sufficient_balance","A",15,1,5],["dispense_money","A",16,1,6],["read_card","A",17,1,7],["validate_id","A",18,1,8],["id_successful","A",19,1,9],["check_balance","A",20,1,10],["unsufficient_balance","A",21,1,11],["Data_Base","R",22,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[12,22],[13,10],[14,10],[14,22],[15,10],[16,10],[17,10],[18,10],[18,22],[19,10],[20,10],[20,22],[21,10]],
+[[3,2],[3,13],[4,3],[5,4],[5,16],[6,5],[7,6],[7,19],[8,7],[9,8],[9,21],[11,2],[12,11],[13,12],[14,13],[14,12],[14,4],[15,14],[16,15],[17,16],[17,6],[18,17],[18,14],[19,18],[20,19],[20,18],[20,8],[21,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["get_money","A",5,0,6],["insert_card","A",6,0,7],["identification_fails","A",7,0,9],["ATM_system","R",8,1,0],["read_card","A",9,1,1],["validate_id","A",10,1,2],["id_successful","A",11,1,3],["check_balance","A",12,1,4],["sufficient_balance","A",13,1,5],["dispense_money","A",14,1,6],["read_card","A",15,1,7],["validate_id","A",16,1,8],["id_failed","A",17,1,9],["Data_Base","R",18,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[9,8],[10,8],[10,18],[11,8],[12,8],[12,18],[13,8],[14,8],[15,8],[16,8],[16,18],[17,8]],
+[[3,2],[3,11],[4,3],[5,4],[5,14],[6,5],[7,6],[7,17],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13],[15,14],[15,6],[16,15],[16,12],[17,16]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["not_sufficient_funds","A",5,0,5],["insert_card","A",6,0,6],["identification_succeeds","A",7,0,8],["request_withdrawal","A",8,0,9],["get_money","A",9,0,11],["ATM_system","R",10,1,0],["read_card","A",11,1,1],["validate_id","A",12,1,2],["id_successful","A",13,1,3],["check_balance","A",14,1,4],["unsufficient_balance","A",15,1,5],["read_card","A",16,1,6],["validate_id","A",17,1,7],["id_successful","A",18,1,8],["check_balance","A",19,1,9],["sufficient_balance","A",20,1,10],["dispense_money","A",21,1,11],["Data_Base","R",22,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[12,22],[13,10],[14,10],[14,22],[15,10],[16,10],[17,10],[17,22],[18,10],[19,10],[19,22],[20,10],[21,10]],
+[[3,2],[3,13],[4,3],[5,4],[5,15],[6,5],[7,6],[7,18],[8,7],[9,8],[9,21],[11,2],[12,11],[13,12],[14,13],[14,12],[14,4],[15,14],[16,15],[16,6],[17,16],[17,14],[18,17],[19,18],[19,17],[19,8],[20,19],[21,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["not_sufficient_funds","A",5,0,5],["insert_card","A",6,0,6],["identification_succeeds","A",7,0,8],["request_withdrawal","A",8,0,9],["not_sufficient_funds","A",9,0,10],["ATM_system","R",10,1,0],["read_card","A",11,1,1],["validate_id","A",12,1,2],["id_successful","A",13,1,3],["check_balance","A",14,1,4],["unsufficient_balance","A",15,1,5],["read_card","A",16,1,6],["validate_id","A",17,1,7],["id_successful","A",18,1,8],["check_balance","A",19,1,9],["unsufficient_balance","A",20,1,10],["Data_Base","R",21,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[12,21],[13,10],[14,10],[14,21],[15,10],[16,10],[17,10],[17,21],[18,10],[19,10],[19,21],[20,10]],
+[[3,2],[3,13],[4,3],[5,4],[5,15],[6,5],[7,6],[7,18],[8,7],[9,8],[9,20],[11,2],[12,11],[13,12],[14,13],[14,12],[14,4],[15,14],[16,15],[16,6],[17,16],[17,14],[18,17],[19,18],[19,17],[19,8],[20,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,3],["request_withdrawal","A",4,0,4],["not_sufficient_funds","A",5,0,5],["insert_card","A",6,0,6],["identification_fails","A",7,0,8],["ATM_system","R",8,1,0],["read_card","A",9,1,1],["validate_id","A",10,1,2],["id_successful","A",11,1,3],["check_balance","A",12,1,4],["unsufficient_balance","A",13,1,5],["read_card","A",14,1,6],["validate_id","A",15,1,7],["id_failed","A",16,1,8],["Data_Base","R",17,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[9,8],[10,8],[10,17],[11,8],[12,8],[12,17],[13,8],[14,8],[15,8],[15,17],[16,8]],
+[[3,2],[3,11],[4,3],[5,4],[5,13],[6,5],[7,6],[7,16],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13],[14,6],[15,14],[15,12],[16,15]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,3],["insert_card","A",4,0,4],["identification_succeeds","A",5,0,6],["request_withdrawal","A",6,0,7],["get_money","A",7,0,9],["ATM_system","R",8,1,0],["read_card","A",9,1,1],["validate_id","A",10,1,2],["id_failed","A",11,1,3],["read_card","A",12,1,4],["validate_id","A",13,1,5],["id_successful","A",14,1,6],["check_balance","A",15,1,7],["sufficient_balance","A",16,1,8],["dispense_money","A",17,1,9],["Data_Base","R",18,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[9,8],[10,8],[10,18],[11,8],[12,8],[13,8],[13,18],[14,8],[15,8],[15,18],[16,8],[17,8]],
+[[3,2],[3,11],[4,3],[5,4],[5,14],[6,5],[7,6],[7,17],[9,2],[10,9],[11,10],[12,11],[12,4],[13,12],[13,10],[14,13],[15,14],[15,13],[15,6],[16,15],[17,16]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,3],["insert_card","A",4,0,4],["identification_succeeds","A",5,0,6],["request_withdrawal","A",6,0,7],["not_sufficient_funds","A",7,0,8],["ATM_system","R",8,1,0],["read_card","A",9,1,1],["validate_id","A",10,1,2],["id_failed","A",11,1,3],["read_card","A",12,1,4],["validate_id","A",13,1,5],["id_successful","A",14,1,6],["check_balance","A",15,1,7],["unsufficient_balance","A",16,1,8],["Data_Base","R",17,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[9,8],[10,8],[10,17],[11,8],[12,8],[13,8],[13,17],[14,8],[15,8],[15,17],[16,8]],
+[[3,2],[3,11],[4,3],[5,4],[5,14],[6,5],[7,6],[7,16],[9,2],[10,9],[11,10],[12,11],[12,4],[13,12],[13,10],[14,13],[15,14],[15,13],[15,6],[16,15]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0127796, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,3],["insert_card","A",4,0,4],["identification_fails","A",5,0,6],["ATM_system","R",6,1,0],["read_card","A",7,1,1],["validate_id","A",8,1,2],["id_failed","A",9,1,3],["read_card","A",10,1,4],["validate_id","A",11,1,5],["id_failed","A",12,1,6],["Data_Base","R",13,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[8,13],[9,6],[10,6],[11,6],[11,13],[12,6]],
+[[3,2],[3,9],[4,3],[5,4],[5,12],[7,2],[8,7],[9,8],[10,9],[10,4],[11,10],[11,8],[12,11]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04_Stack_behavior.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04_Stack_behavior.json
new file mode 100644
index 0000000..9409812
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04_Stack_behavior.json
@@ -0,0 +1,36 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Stack","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1],["push","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1],["pop","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]],
+["Paired_with", [2,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04a_Queue_behavior.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04a_Queue_behavior.json
new file mode 100644
index 0000000..1c741d8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example04a_Queue_behavior.json
@@ -0,0 +1,36 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Queue","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Queue","R",1,0,0],["enqueue","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["Queue","R",1,0,0],["enqueue","A",2,0,1],["enqueue","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["Queue","R",1,0,0],["enqueue","A",2,0,1],["dequeue","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]],
+["Paired_with", [2,3]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example05_Car_Race.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example05_Car_Race.json
new file mode 100644
index 0000000..0aafa71
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example05_Car_Race.json
@@ -0,0 +1,243 @@
+{"traces":[
+
+["U", 0.0701754, 
+[ ["All cars have finished","T",10,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["finish","A",4,1,3],["winner","A",5,1,4],["Judge","R",6,2,0],["provide_start_signal","A",7,2,1],["watch","A",8,2,2] ],
+
+[[2,1],[3,2],[4,2],[4,6],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[4,8],[5,4],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.140351, 
+[ ["0 cars from 1 have finished","T",8,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Judge","R",5,2,0],["provide_start_signal","A",6,2,1],["watch","A",7,2,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[7,5]],
+[[3,6],[4,3],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0701754, 
+[ ["All cars have finished","T",11,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["finish","A",5,1,4],["winner","A",6,1,5],["Judge","R",7,2,0],["provide_start_signal","A",8,2,1],["watch","A",9,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,7],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[5,9],[6,5],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.140351, 
+[ ["0 cars from 1 have finished","T",9,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Judge","R",6,2,0],["provide_start_signal","A",7,2,1],["watch","A",8,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[5,4],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0701754, 
+[ ["All cars have finished","T",12,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["finish","A",6,1,5],["winner","A",7,1,6],["Judge","R",8,2,0],["provide_start_signal","A",9,2,1],["watch","A",10,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,8],[7,2],[9,8],[10,8]],
+[[3,9],[4,3],[5,4],[6,5],[6,10],[7,6],[10,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.140351, 
+[ ["0 cars from 1 have finished","T",10,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["break","A",6,1,5],["Judge","R",7,2,0],["provide_start_signal","A",8,2,1],["watch","A",9,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[6,5],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00584795, 
+[ ["All cars have finished","T",14,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["finish","A",4,1,3],["winner","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["finish","A",8,2,3],["Judge","R",9,3,0],["provide_start_signal","A",10,3,1],["watch","A",11,3,2] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,2],[6,1],[7,6],[8,6],[8,9],[10,9],[11,9]],
+[[3,10],[4,3],[4,11],[5,4],[7,10],[8,7],[8,4],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",13,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["finish","A",4,1,3],["winner","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["break","A",8,2,3],["Judge","R",9,3,0],["provide_start_signal","A",10,3,1],["watch","A",11,3,2] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,2],[6,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,10],[4,3],[4,11],[5,4],[7,10],[8,7],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",13,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["finish","A",7,2,3],["winner","A",8,2,4],["Judge","R",9,3,0],["provide_start_signal","A",10,3,1],["watch","A",11,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[7,9],[8,5],[10,9],[11,9]],
+[[3,10],[4,3],[6,10],[7,6],[7,11],[8,7],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",11,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["break","A",7,2,3],["Judge","R",8,3,0],["provide_start_signal","A",9,3,1],["watch","A",10,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[9,8],[10,8]],
+[[3,9],[4,3],[6,9],[7,6],[10,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",14,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["drive_lap","A",7,2,3],["finish","A",8,2,4],["winner","A",9,2,5],["Judge","R",10,3,0],["provide_start_signal","A",11,3,1],["watch","A",12,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[8,10],[9,5],[11,10],[12,10]],
+[[3,11],[4,3],[6,11],[7,6],[8,7],[8,12],[9,8],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",12,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["drive_lap","A",7,2,3],["break","A",8,2,4],["Judge","R",9,3,0],["provide_start_signal","A",10,3,1],["watch","A",11,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[10,9],[11,9]],
+[[3,10],[4,3],[6,10],[7,6],[8,7],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",15,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["drive_lap","A",7,2,3],["drive_lap","A",8,2,4],["finish","A",9,2,5],["winner","A",10,2,6],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[9,11],[10,5],[12,11],[13,11]],
+[[3,12],[4,3],[6,12],[7,6],[8,7],[9,8],[9,13],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",13,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["break","A",4,1,3],["Car","C",5,2,1],["Start","A",6,2,2],["drive_lap","A",7,2,3],["drive_lap","A",8,2,4],["break","A",9,2,5],["Judge","R",10,3,0],["provide_start_signal","A",11,3,1],["watch","A",12,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10]],
+[[3,11],[4,3],[6,11],[7,6],[8,7],[9,8],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",14,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["finish","A",5,1,4],["winner","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["break","A",9,2,3],["Judge","R",10,3,0],["provide_start_signal","A",11,3,1],["watch","A",12,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,10],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[5,12],[6,5],[8,11],[9,8],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00584795, 
+[ ["All cars have finished","T",16,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["finish","A",5,1,4],["winner","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["drive_lap","A",9,2,3],["finish","A",10,2,4],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,11],[6,2],[7,1],[8,7],[9,7],[10,7],[10,11],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[5,13],[6,5],[8,12],[9,8],[10,9],[10,5],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",15,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["finish","A",5,1,4],["winner","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["drive_lap","A",9,2,3],["break","A",10,2,4],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,11],[6,2],[7,1],[8,7],[9,7],[10,7],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[5,13],[6,5],[8,12],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",12,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["break","A",8,2,3],["Judge","R",9,3,0],["provide_start_signal","A",10,3,1],["watch","A",11,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,10],[4,3],[5,4],[7,10],[8,7],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",15,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["drive_lap","A",8,2,3],["finish","A",9,2,4],["winner","A",10,2,5],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[9,11],[10,6],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[7,12],[8,7],[9,8],[9,13],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",13,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["drive_lap","A",8,2,3],["break","A",9,2,4],["Judge","R",10,3,0],["provide_start_signal","A",11,3,1],["watch","A",12,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[7,11],[8,7],[9,8],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",16,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["drive_lap","A",8,2,3],["drive_lap","A",9,2,4],["finish","A",10,2,5],["winner","A",11,2,6],["Judge","R",12,3,0],["provide_start_signal","A",13,3,1],["watch","A",14,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[10,6],[10,12],[11,6],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[7,13],[8,7],[9,8],[10,9],[10,14],[11,10],[14,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",14,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["break","A",5,1,4],["Car","C",6,2,1],["Start","A",7,2,2],["drive_lap","A",8,2,3],["drive_lap","A",9,2,4],["break","A",10,2,5],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[10,6],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[7,12],[8,7],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",15,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["finish","A",6,1,5],["winner","A",7,1,6],["Car","C",8,2,1],["Start","A",9,2,2],["break","A",10,2,3],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,11],[7,2],[8,1],[9,8],[10,8],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[6,5],[6,13],[7,6],[9,12],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",16,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["finish","A",6,1,5],["winner","A",7,1,6],["Car","C",8,2,1],["Start","A",9,2,2],["drive_lap","A",10,2,3],["break","A",11,2,4],["Judge","R",12,3,0],["provide_start_signal","A",13,3,1],["watch","A",14,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,12],[7,2],[8,1],[9,8],[10,8],[11,8],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[6,5],[6,14],[7,6],[9,13],[10,9],[11,10],[14,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00584795, 
+[ ["All cars have finished","T",18,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["finish","A",6,1,5],["winner","A",7,1,6],["Car","C",8,2,1],["Start","A",9,2,2],["drive_lap","A",10,2,3],["drive_lap","A",11,2,4],["finish","A",12,2,5],["Judge","R",13,3,0],["provide_start_signal","A",14,3,1],["watch","A",15,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,13],[7,2],[8,1],[9,8],[10,8],[11,8],[12,8],[12,13],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[6,15],[7,6],[9,14],[10,9],[11,10],[12,11],[12,6],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",17,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["finish","A",6,1,5],["winner","A",7,1,6],["Car","C",8,2,1],["Start","A",9,2,2],["drive_lap","A",10,2,3],["drive_lap","A",11,2,4],["break","A",12,2,5],["Judge","R",13,3,0],["provide_start_signal","A",14,3,1],["watch","A",15,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,13],[7,2],[8,1],[9,8],[10,8],[11,8],[12,8],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[6,15],[7,6],[9,14],[10,9],[11,10],[12,11],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",13,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["break","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["break","A",9,2,3],["Judge","R",10,3,0],["provide_start_signal","A",11,3,1],["watch","A",12,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[6,5],[8,11],[9,8],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",14,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["break","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["drive_lap","A",9,2,3],["break","A",10,2,4],["Judge","R",11,3,0],["provide_start_signal","A",12,3,1],["watch","A",13,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[6,5],[8,12],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0116959, 
+[ ["1 cars from 2 have finished","T",17,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["break","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["drive_lap","A",9,2,3],["drive_lap","A",10,2,4],["finish","A",11,2,5],["winner","A",12,2,6],["Judge","R",13,3,0],["provide_start_signal","A",14,3,1],["watch","A",15,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[11,13],[12,7],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[8,14],[9,8],[10,9],[11,10],[11,15],[12,11],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0233918, 
+[ ["0 cars from 2 have finished","T",15,0,0],["Cars","R",1,1,0],["Car","C",2,1,1],["Start","A",3,1,2],["drive_lap","A",4,1,3],["drive_lap","A",5,1,4],["break","A",6,1,5],["Car","C",7,2,1],["Start","A",8,2,2],["drive_lap","A",9,2,3],["drive_lap","A",10,2,4],["break","A",11,2,5],["Judge","R",12,3,0],["provide_start_signal","A",13,3,1],["watch","A",14,3,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[6,5],[8,13],[9,8],[10,9],[11,10],[14,13]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example06_Assertion_Checking.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example06_Assertion_Checking.json
new file mode 100644
index 0000000..ac8d2a1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example06_Assertion_Checking.json
@@ -0,0 +1,107 @@
+{"traces":[
+
+["U", 0.571429, 
+[ ["TaskA","R",1,0,0],["Connector_A_to_B","R",2,1,0],["TaskB","R",3,2,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0714286, 
+[ ["TaskA","R",1,0,0],["A_sends_request_to_B","A",2,0,1],["A_receives_data_from_B","A",3,0,2],["Connector_A_to_B","R",4,1,0],["B_receives_request_from_A","A",6,1,1],["B_sends_data_to_A","A",7,1,2],["TaskB","R",9,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[6,4],[6,9],[7,4],[7,9]],
+[[3,2],[3,7],[6,2],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0714286, 
+[ ["loss of reception detected","T",12,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["Connector_A_to_B","R",4,2,0],["B_receives_request_from_A","A",6,2,1],["B_sends_data_to_A","A",7,2,2],["TaskB","R",9,3,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[6,4],[6,9],[7,4],[7,9]],
+[[3,2],[3,7],[6,2],[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.142857, 
+[ ["loss of reception detected","T",8,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["Connector_A_to_B","R",4,2,0],["TaskB","R",7,3,0] ],
+
+[[2,1],[2,4],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00892857, 
+[ ["TaskA","R",1,0,0],["A_sends_request_to_B","A",2,0,1],["A_receives_data_from_B","A",3,0,2],["A_sends_request_to_B","A",4,0,3],["A_receives_data_from_B","A",5,0,4],["Connector_A_to_B","R",6,1,0],["B_receives_request_from_A","A",8,1,1],["B_sends_data_to_A","A",9,1,2],["B_receives_request_from_A","A",12,1,3],["B_sends_data_to_A","A",13,1,4],["TaskB","R",15,2,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,15],[9,6],[9,15],[12,6],[12,15],[13,6],[13,15]],
+[[3,2],[3,9],[4,3],[5,4],[5,13],[8,2],[9,8],[12,4],[12,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00892857, 
+[ ["loss of reception detected","T",20,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_receives_data_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",8,2,1],["B_sends_data_to_A","A",9,2,2],["B_receives_request_from_A","A",12,2,3],["B_sends_data_to_A","A",13,2,4],["TaskB","R",15,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,15],[9,6],[9,15],[12,6],[12,15],[13,6],[13,15]],
+[[3,2],[3,9],[4,3],[5,4],[5,13],[8,2],[9,8],[12,4],[12,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0178571, 
+[ ["loss of reception detected","T",16,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_receives_data_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",8,2,1],["B_sends_data_to_A","A",9,2,2],["TaskB","R",13,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,13],[9,6],[9,13]],
+[[3,2],[3,9],[4,3],[5,4],[8,2],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00892857, 
+[ ["loss of reception detected","T",20,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_receives_data_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",8,2,1],["B_sends_data_to_A","A",9,2,2],["B_receives_request_from_A","A",12,2,3],["B_sends_data_to_A","A",13,2,4],["TaskB","R",15,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,15],[9,6],[9,15],[12,6],[12,15],[13,6],[13,15]],
+[[3,2],[3,9],[4,3],[5,4],[5,13],[8,2],[9,8],[12,4],[12,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0178571, 
+[ ["loss of reception detected","T",16,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_receives_data_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",10,2,3],["B_sends_data_to_A","A",11,2,4],["TaskB","R",13,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[10,6],[10,13],[11,6],[11,13]],
+[[3,2],[4,3],[5,4],[5,11],[10,4],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00892857, 
+[ ["loss of reception detected","T",20,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",8,2,1],["B_sends_data_to_A","A",9,2,2],["B_receives_request_from_A","A",12,2,3],["B_sends_data_to_A","A",13,2,4],["TaskB","R",15,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,15],[9,6],[9,15],[12,6],[12,15],[13,6],[13,15]],
+[[3,2],[3,9],[4,3],[5,4],[5,13],[8,2],[9,8],[12,4],[12,9],[13,12]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0178571, 
+[ ["loss of reception detected","T",16,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",8,2,1],["B_sends_data_to_A","A",9,2,2],["TaskB","R",13,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[8,6],[8,13],[9,6],[9,13]],
+[[3,2],[3,9],[4,3],[5,4],[8,2],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0178571, 
+[ ["loss of reception detected","T",16,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["B_receives_request_from_A","A",10,2,3],["B_sends_data_to_A","A",11,2,4],["TaskB","R",13,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6],[10,6],[10,13],[11,6],[11,13]],
+[[3,2],[4,3],[5,4],[5,11],[10,4],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0357143, 
+[ ["loss of reception detected","T",12,0,0],["TaskA","R",1,1,0],["A_sends_request_to_B","A",2,1,1],["A_timeout_waiting_from_B","A",3,1,2],["A_sends_request_to_B","A",4,1,3],["A_timeout_waiting_from_B","A",5,1,4],["Connector_A_to_B","R",6,2,0],["TaskB","R",11,3,0] ],
+
+[[2,1],[2,6],[3,1],[3,6],[4,1],[4,6],[5,1],[5,6]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example07_Unconstrained_Stack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example07_Unconstrained_Stack.json
new file mode 100644
index 0000000..a5cff10
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example07_Unconstrained_Stack.json
@@ -0,0 +1,59 @@
+{"traces":[
+
+["U", 0.432432, 
+[ ["Stack","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.216216, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.108108, 
+[ ["Stack","R",1,0,0],["pop","A",2,0,1],["bang","A",3,0,2],["This event tries to pop empty Stack","T",4,1,1] ],
+
+[[2,1],[3,1],[4,1]],
+[[2,4],[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.108108, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1],["push","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0540541, 
+[ ["Stack","R",1,0,0],["push","A",2,0,1],["pop","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0540541, 
+[ ["Stack","R",1,0,0],["pop","A",2,0,1],["bang","A",3,0,2],["push","A",4,0,3],["This event tries to pop empty Stack","T",5,1,1] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[2,5],[3,2],[4,3]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.027027, 
+[ ["Stack","R",1,0,0],["pop","A",2,0,1],["bang","A",3,0,2],["pop","A",4,0,3],["bang","A",5,0,4],["This event tries to pop empty Stack","T",6,1,1],["This event tries to pop empty Stack","T",7,1,2] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1]],
+[[2,6],[3,2],[4,3],[4,7],[5,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example08_Operational_Process.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example08_Operational_Process.json
new file mode 100644
index 0000000..603295a
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example08_Operational_Process.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Command_and_Control","R",1,0,0],["Receive_distress_signal","A",2,0,2],["Pass_mission_information","A",3,0,3],["Acknowledge_search_plan","A",4,0,9],["Receive_relayed_survivor_location_and_situation","A",5,0,19],["On_Scene_Commander","R",6,1,0],["Receive_mission_information","A",7,1,3],["Relay_mission_information","A",8,1,4],["Attempt_contact_with_PID","A",9,1,5],["Assess_environmental_conditions","A",10,1,6],["Receive_environmental_conditions","A",11,1,8],["Provide_search_plan","A",12,1,9],["Communicate_search_plan_and_responsibilities","A",13,1,10],["Scan_environment_for_signs_of_PID","A",14,1,12],["Receive_updates_for_OSC","A",15,1,14],["Receive_PID_location_and_situation","A",16,1,18],["Relay_survivor_location_and_situation","A",17,1,19],["PID","R",18,2,0],["Send_distress_signal","A",19,2,1],["Identify_self_as_PID","A",20,2,15],["Present_for_rescue","A",21,2,17],["Physical_Environment","R",22,3,0],["Provide_environmental_conditions","A",23,3,7],["SAR_Assets","R",24,4,0],["Receive_relayed_mission_information","A",25,4,5],["Confirm_search_plan_and_responsibilities","A",26,4,11],["Provide_updates_to_OSC","A",28,4,13],["Spot_object_of_interest","A",29,4,14],["Maneuver_to_rescue_PID","A",30,4,16],["Notify_OSC_of_PID_location_and_situation","A",31,4,17] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[9,6],[10,6],[11,6],[12,6],[13,6],[14,6],[14,24],[15,6],[16,6],[17,6],[19,18],[20,18],[21,18],[23,22],[25,24],[26,24],[28,24],[29,24],[30,24],[31,24]],
+[[2,19],[3,2],[4,3],[4,12],[5,4],[5,17],[7,3],[8,7],[9,8],[10,9],[11,10],[11,23],[12,11],[13,12],[13,4],[14,13],[14,26],[15,14],[15,28],[16,15],[16,31],[17,16],[20,19],[20,29],[21,20],[21,30],[23,10],[25,8],[26,25],[26,13],[28,14],[29,28],[30,29],[30,20],[31,30]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example09_Employee_Employer.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example09_Employee_Employer.json
new file mode 100644
index 0000000..c4b0c22
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example09_Employee_Employer.json
@@ -0,0 +1,11 @@
+{"traces":[
+
+["U", 1, 
+[ ["Employee","R",1,0,0],["SendArrivalDate","A",2,0,1],["MedicalCheck","A",3,0,2],["ReadyToWork","A",4,0,3],["Employer","R",5,1,0],["EmployeeArrival","A",6,1,1],["Fill_HR_DB","A",7,1,2],["ProvideComputer","A",10,1,3],["ProvideOffice","A",9,2,1] ],
+
+[[2,1],[3,1],[3,5],[4,1],[4,5],[6,5],[7,5],[9,5],[10,5]],
+[[3,2],[3,7],[4,3],[4,10],[4,3],[6,2],[7,6],[9,6],[10,9],[10,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example10_Pipe_Filter.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example10_Pipe_Filter.json
new file mode 100644
index 0000000..bf8d948
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example10_Pipe_Filter.json
@@ -0,0 +1,155 @@
+{"traces":[
+
+["U", 0.515924, 
+[ ["Producer","R",1,0,0],["Filter1","R",2,1,0],["Filter2","R",3,2,0],["Consumer","R",4,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.171975, 
+[ ["1 messages did not reach Consumer","T",8,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["Filter1","R",3,2,0],["receive","A",4,2,1],["some messages have been lost in Filter1","T",5,2,2],["Filter2","R",6,3,0],["Consumer","R",7,4,0] ],
+
+[[2,1],[4,3],[5,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0573248, 
+[ ["1 messages did not reach Consumer","T",10,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["Filter1","R",3,2,0],["receive","A",4,2,1],["send","A",5,2,2],["Filter2","R",6,3,0],["receive","A",7,3,2],["some messages have been lost in Filter2","T",8,3,3],["Consumer","R",9,4,0] ],
+
+[[2,1],[4,3],[5,3],[7,6],[8,6]],
+[[4,2],[5,4],[7,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0573248, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["Filter1","R",3,1,0],["receive","A",4,1,1],["send","A",5,1,2],["Filter2","R",6,2,0],["receive","A",7,2,2],["send","A",8,2,3],["Consumer","R",9,3,0],["receive","A",10,3,3] ],
+
+[[2,1],[4,3],[5,3],[7,6],[8,6],[10,9]],
+[[4,2],[5,4],[7,5],[8,7],[10,8]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0573248, 
+[ ["2 messages did not reach Consumer","T",10,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["some messages have been lost in Filter1","T",7,2,3],["Filter2","R",8,3,0],["Consumer","R",9,4,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0191083, 
+[ ["2 messages did not reach Consumer","T",13,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["send","A",7,2,3],["some messages have been lost in Filter1","T",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,3],["some messages have been lost in Filter2","T",11,3,2],["Consumer","R",12,4,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[10,7]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0191083, 
+[ ["1 messages did not reach Consumer","T",14,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["send","A",7,2,3],["some messages have been lost in Filter1","T",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,3],["send","A",11,3,4],["Consumer","R",12,4,0],["receive","A",13,4,4] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[13,12]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[10,7],[11,10],[13,11]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["2 messages did not reach Consumer","T",14,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["send","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,3],["receive","A",11,3,4],["some messages have been lost in Filter2","T",12,3,5],["Consumer","R",13,4,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[8,7],[10,7],[11,10],[11,8]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["1 messages did not reach Consumer","T",16,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["send","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,3],["receive","A",11,3,4],["send","A",12,3,5],["some messages have been lost in Filter2","T",13,3,6],["Consumer","R",14,4,0],["receive","A",15,4,5] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[8,7],[10,7],[11,10],[11,8],[12,11],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00636943, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Filter1","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2],["send","A",7,1,3],["send","A",8,1,4],["Filter2","R",9,2,0],["receive","A",10,2,3],["receive","A",11,2,4],["send","A",12,2,5],["send","A",13,2,6],["Consumer","R",14,3,0],["receive","A",15,3,5],["receive","A",16,3,6] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14],[16,14]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[8,7],[10,7],[11,10],[11,8],[12,11],[13,12],[15,12],[16,15],[16,13]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["1 messages did not reach Consumer","T",16,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["receive","A",6,2,2],["send","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,3],["send","A",11,3,4],["receive","A",12,3,5],["some messages have been lost in Filter2","T",13,3,6],["Consumer","R",14,4,0],["receive","A",15,4,4] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[8,7],[10,7],[11,10],[12,11],[12,8],[15,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00636943, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Filter1","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2],["send","A",7,1,3],["send","A",8,1,4],["Filter2","R",9,2,0],["receive","A",10,2,3],["send","A",11,2,4],["receive","A",12,2,5],["send","A",13,2,6],["Consumer","R",14,3,0],["receive","A",15,3,4],["receive","A",16,3,6] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14],[16,14]],
+[[3,2],[5,2],[6,5],[6,3],[7,6],[8,7],[10,7],[11,10],[12,11],[12,8],[13,12],[15,11],[16,15],[16,13]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0191083, 
+[ ["2 messages did not reach Consumer","T",13,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["send","A",6,2,2],["receive","A",7,2,3],["some messages have been lost in Filter1","T",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,2],["some messages have been lost in Filter2","T",11,3,3],["Consumer","R",12,4,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[10,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0191083, 
+[ ["1 messages did not reach Consumer","T",14,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["send","A",6,2,2],["receive","A",7,2,3],["some messages have been lost in Filter1","T",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,2],["send","A",11,3,3],["Consumer","R",12,4,0],["receive","A",13,4,3] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[13,12]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[10,6],[11,10],[13,11]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["2 messages did not reach Consumer","T",14,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["send","A",6,2,2],["receive","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,2],["receive","A",11,3,4],["some messages have been lost in Filter2","T",12,3,3],["Consumer","R",13,4,0] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[8,7],[10,6],[11,10],[11,8]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["1 messages did not reach Consumer","T",16,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["send","A",6,2,2],["receive","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,2],["receive","A",11,3,4],["send","A",12,3,5],["some messages have been lost in Filter2","T",13,3,6],["Consumer","R",14,4,0],["receive","A",15,4,5] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[8,7],[10,6],[11,10],[11,8],[12,11],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00636943, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Filter1","R",4,1,0],["receive","A",5,1,1],["send","A",6,1,2],["receive","A",7,1,3],["send","A",8,1,4],["Filter2","R",9,2,0],["receive","A",10,2,2],["receive","A",11,2,4],["send","A",12,2,5],["send","A",13,2,6],["Consumer","R",14,3,0],["receive","A",15,3,5],["receive","A",16,3,6] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14],[16,14]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[8,7],[10,6],[11,10],[11,8],[12,11],[13,12],[15,12],[16,15],[16,13]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00636943, 
+[ ["1 messages did not reach Consumer","T",16,0,0],["Producer","R",1,1,0],["send","A",2,1,1],["send","A",3,1,2],["Filter1","R",4,2,0],["receive","A",5,2,1],["send","A",6,2,2],["receive","A",7,2,3],["send","A",8,2,4],["Filter2","R",9,3,0],["receive","A",10,3,2],["send","A",11,3,3],["receive","A",12,3,4],["some messages have been lost in Filter2","T",13,3,5],["Consumer","R",14,4,0],["receive","A",15,4,3] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[8,7],[10,6],[11,10],[12,11],[12,8],[15,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00636943, 
+[ ["Producer","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Filter1","R",4,1,0],["receive","A",5,1,1],["send","A",6,1,2],["receive","A",7,1,3],["send","A",8,1,4],["Filter2","R",9,2,0],["receive","A",10,2,2],["send","A",11,2,3],["receive","A",12,2,4],["send","A",13,2,5],["Consumer","R",14,3,0],["receive","A",15,3,3],["receive","A",16,3,5] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,4],[10,9],[11,9],[12,9],[13,9],[15,14],[16,14]],
+[[3,2],[5,2],[6,5],[7,6],[7,3],[8,7],[10,6],[11,10],[12,11],[12,8],[13,12],[15,11],[16,15],[16,13]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example11_Publish_Subscribe.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example11_Publish_Subscribe.json
new file mode 100644
index 0000000..2a5156b
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example11_Publish_Subscribe.json
@@ -0,0 +1,411 @@
+{"traces":[
+
+["U", 0.376355, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Unsubscribe","A",4,0,4],["Subscribers","R",5,1,0],["Client","C",6,1,1],["Receive","A",8,1,3] ],
+
+[[2,1],[2,6],[3,1],[4,1],[4,6],[6,5],[8,6]],
+[[3,2],[4,3],[4,8],[8,2],[8,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0418172, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Client","C",10,2,1] ],
+
+[[2,1],[2,10],[3,1],[3,7],[4,1],[4,10],[5,1],[5,7],[7,6],[10,6]],
+[[3,2],[4,3],[4,2],[5,4],[5,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0418172, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Client","C",10,2,1] ],
+
+[[2,1],[2,10],[3,1],[3,7],[4,1],[4,7],[5,1],[5,10],[7,6],[10,6]],
+[[3,2],[4,3],[5,4],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0418172, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Client","C",10,2,1] ],
+
+[[2,1],[2,7],[3,1],[3,10],[4,1],[4,10],[5,1],[5,7],[7,6],[10,6]],
+[[3,2],[4,3],[5,4],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0418172, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Client","C",10,2,1] ],
+
+[[2,1],[2,7],[3,1],[3,10],[4,1],[4,7],[5,1],[5,10],[7,6],[10,6]],
+[[3,2],[4,3],[4,2],[5,4],[5,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0418172, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Unsubscribe","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Client","C",10,2,1] ],
+
+[[2,1],[2,10],[3,1],[3,10],[4,1],[4,7],[5,1],[5,7],[7,6],[10,6]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125452, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Unsubscribe","A",5,0,5],["Subscribers","R",6,1,0],["Client","C",7,1,1],["Receive","A",9,1,3],["Receive","A",10,1,4] ],
+
+[[2,1],[2,7],[3,1],[4,1],[5,1],[5,7],[7,6],[9,7],[10,7]],
+[[3,2],[4,3],[5,4],[5,10],[9,2],[9,3],[10,9],[10,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Unsubscribe","A",6,0,7],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Client","C",11,2,1],["Receive","A",13,2,6] ],
+
+[[2,1],[2,11],[3,1],[3,8],[4,1],[4,8],[5,1],[6,1],[6,11],[8,7],[11,7],[13,11]],
+[[3,2],[4,3],[5,4],[6,5],[6,13],[13,2],[13,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Unsubscribe","A",6,0,7],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Client","C",11,2,1],["Receive","A",13,2,6] ],
+
+[[2,1],[2,8],[3,1],[3,11],[4,1],[4,8],[5,1],[6,1],[6,11],[8,7],[11,7],[13,11]],
+[[3,2],[4,3],[4,2],[5,4],[6,5],[6,13],[13,3],[13,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Receive","A",10,1,5],["Client","C",12,2,1] ],
+
+[[2,1],[2,12],[3,1],[3,8],[4,1],[4,12],[5,1],[6,1],[6,8],[8,7],[10,8],[12,7]],
+[[3,2],[4,3],[4,2],[5,4],[6,5],[6,10],[10,3],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Receive","A",10,1,5],["Client","C",12,2,1] ],
+
+[[2,1],[2,8],[3,1],[3,12],[4,1],[4,12],[5,1],[6,1],[6,8],[8,7],[10,8],[12,7]],
+[[3,2],[4,3],[5,4],[6,5],[6,10],[10,2],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0139391, 
+[ ["this Send is received by 2 Clients","T",16,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,6],["Unsubscribe","A",6,1,7],["Subscribers","R",7,2,0],["Client","C",8,2,1],["Receive","A",10,2,4],["Client","C",12,3,1],["Receive","A",14,3,5] ],
+
+[[2,1],[2,12],[3,1],[3,8],[4,1],[5,1],[5,12],[6,1],[6,8],[8,7],[10,8],[12,7],[14,12]],
+[[3,2],[4,3],[4,16],[5,4],[5,14],[6,5],[6,10],[10,3],[10,4],[14,2],[14,4]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0139391, 
+[ ["this Send is received by 2 Clients","T",16,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,5],["Unsubscribe","A",6,1,6],["Subscribers","R",7,2,0],["Client","C",8,2,1],["Receive","A",10,2,4],["Client","C",12,3,1],["Receive","A",14,3,5] ],
+
+[[2,1],[2,12],[3,1],[3,8],[4,1],[5,1],[5,8],[6,1],[6,12],[8,7],[10,8],[12,7],[14,12]],
+[[3,2],[4,3],[4,16],[5,4],[5,10],[6,5],[6,14],[10,3],[10,4],[14,2],[14,4]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0139391, 
+[ ["this Send is received by 2 Clients","T",16,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,6],["Unsubscribe","A",6,1,7],["Subscribers","R",7,2,0],["Client","C",8,2,1],["Receive","A",10,2,4],["Client","C",12,3,1],["Receive","A",14,3,5] ],
+
+[[2,1],[2,8],[3,1],[3,12],[4,1],[5,1],[5,12],[6,1],[6,8],[8,7],[10,8],[12,7],[14,12]],
+[[3,2],[4,3],[4,16],[5,4],[5,14],[6,5],[6,10],[10,2],[10,4],[14,3],[14,4]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.0139391, 
+[ ["this Send is received by 2 Clients","T",16,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,5],["Unsubscribe","A",6,1,6],["Subscribers","R",7,2,0],["Client","C",8,2,1],["Receive","A",10,2,4],["Client","C",12,3,1],["Receive","A",14,3,5] ],
+
+[[2,1],[2,8],[3,1],[3,12],[4,1],[5,1],[5,8],[6,1],[6,12],[8,7],[10,8],[12,7],[14,12]],
+[[3,2],[4,3],[4,16],[5,4],[5,10],[6,5],[6,14],[10,2],[10,4],[14,3],[14,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Client","C",11,2,1],["Receive","A",13,2,4] ],
+
+[[2,1],[2,11],[3,1],[4,1],[4,8],[5,1],[5,11],[6,1],[6,8],[8,7],[11,7],[13,11]],
+[[3,2],[4,3],[5,4],[5,13],[6,5],[6,4],[13,2],[13,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Client","C",11,2,1],["Receive","A",13,2,4] ],
+
+[[2,1],[2,11],[3,1],[4,1],[4,8],[5,1],[5,8],[6,1],[6,11],[8,7],[11,7],[13,11]],
+[[3,2],[4,3],[5,4],[6,5],[6,13],[13,2],[13,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Receive","A",10,1,3],["Client","C",12,2,1] ],
+
+[[2,1],[2,8],[3,1],[4,1],[4,12],[5,1],[5,12],[6,1],[6,8],[8,7],[10,8],[12,7]],
+[[3,2],[4,3],[5,4],[6,5],[6,10],[10,2],[10,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0139391, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Unsubscribe","A",6,0,6],["Subscribers","R",7,1,0],["Client","C",8,1,1],["Receive","A",10,1,3],["Client","C",12,2,1] ],
+
+[[2,1],[2,8],[3,1],[4,1],[4,12],[5,1],[5,8],[6,1],[6,12],[8,7],[10,8],[12,7]],
+[[3,2],[4,3],[5,4],[5,10],[6,5],[6,4],[10,2],[10,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,8],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Client","C",12,2,1],["Receive","A",14,2,6],["Receive","A",15,2,7] ],
+
+[[2,1],[2,12],[3,1],[3,9],[4,1],[4,9],[5,1],[6,1],[7,1],[7,12],[9,8],[12,8],[14,12],[15,12]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,15],[14,2],[14,5],[15,14],[15,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,8],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Client","C",12,2,1],["Receive","A",14,2,6],["Receive","A",15,2,7] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,9],[5,1],[6,1],[7,1],[7,12],[9,8],[12,8],[14,12],[15,12]],
+[[3,2],[4,3],[4,2],[5,4],[6,5],[7,6],[7,15],[14,3],[14,5],[15,14],[15,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,5],["Receive","A",12,1,6],["Client","C",14,2,1] ],
+
+[[2,1],[2,14],[3,1],[3,9],[4,1],[4,14],[5,1],[6,1],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8]],
+[[3,2],[4,3],[4,2],[5,4],[6,5],[7,6],[7,12],[11,3],[11,5],[12,11],[12,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Register","A",3,0,3],["Unsubscribe","A",4,0,4],["Send","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,5],["Receive","A",12,1,6],["Client","C",14,2,1] ],
+
+[[2,1],[2,9],[3,1],[3,14],[4,1],[4,14],[5,1],[6,1],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,12],[11,2],[11,5],[12,11],[12,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,5],["Send","A",6,1,6],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Client","C",13,3,1],["Receive","A",15,3,5],["Receive","A",16,3,7] ],
+
+[[2,1],[2,13],[3,1],[3,9],[4,1],[5,1],[5,9],[6,1],[7,1],[7,13],[9,8],[11,9],[13,8],[15,13],[16,13]],
+[[3,2],[4,3],[4,18],[5,4],[5,11],[6,5],[7,6],[7,16],[11,3],[11,4],[15,2],[15,4],[16,15],[16,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,5],["Send","A",6,1,6],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Client","C",13,3,1],["Receive","A",15,3,5],["Receive","A",16,3,7] ],
+
+[[2,1],[2,9],[3,1],[3,13],[4,1],[5,1],[5,9],[6,1],[7,1],[7,13],[9,8],[11,9],[13,8],[15,13],[16,13]],
+[[3,2],[4,3],[4,18],[5,4],[5,11],[6,5],[7,6],[7,16],[11,2],[11,4],[15,3],[15,4],[16,15],[16,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,6],["Send","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,7],["Client","C",14,3,1],["Receive","A",16,3,5] ],
+
+[[2,1],[2,14],[3,1],[3,9],[4,1],[5,1],[5,14],[6,1],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8],[16,14]],
+[[3,2],[4,3],[4,18],[5,4],[5,16],[6,5],[7,6],[7,12],[11,3],[11,4],[12,11],[12,6],[16,2],[16,4]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Unsubscribe","A",5,1,6],["Send","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,7],["Client","C",14,3,1],["Receive","A",16,3,5] ],
+
+[[2,1],[2,9],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8],[16,14]],
+[[3,2],[4,3],[4,18],[5,4],[5,16],[6,5],[7,6],[7,12],[11,2],[11,4],[12,11],[12,6],[16,3],[16,4]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",19,0,0],["this Send is received by 2 Clients","T",20,0,1],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,5],["Receive","A",17,3,6] ],
+
+[[2,1],[2,14],[3,1],[3,9],[4,1],[5,1],[6,1],[6,14],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8],[16,14],[17,14]],
+[[3,2],[4,3],[4,19],[5,4],[5,20],[6,5],[6,17],[7,6],[7,12],[11,3],[11,4],[12,11],[12,5],[16,2],[16,4],[17,16],[17,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",19,0,0],["this Send is received by 2 Clients","T",20,0,1],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,6],["Unsubscribe","A",7,1,7],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,5],["Receive","A",17,3,6] ],
+
+[[2,1],[2,14],[3,1],[3,9],[4,1],[5,1],[6,1],[6,9],[7,1],[7,14],[9,8],[11,9],[12,9],[14,8],[16,14],[17,14]],
+[[3,2],[4,3],[4,19],[5,4],[5,20],[6,5],[6,12],[7,6],[7,17],[11,3],[11,4],[12,11],[12,5],[16,2],[16,4],[17,16],[17,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",19,0,0],["this Send is received by 2 Clients","T",20,0,1],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,5],["Receive","A",17,3,6] ],
+
+[[2,1],[2,9],[3,1],[3,14],[4,1],[5,1],[6,1],[6,14],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8],[16,14],[17,14]],
+[[3,2],[4,3],[4,19],[5,4],[5,20],[6,5],[6,17],[7,6],[7,12],[11,2],[11,4],[12,11],[12,5],[16,3],[16,4],[17,16],[17,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",19,0,0],["this Send is received by 2 Clients","T",20,0,1],["Publisher","R",1,1,0],["Register","A",2,1,2],["Register","A",3,1,3],["Send","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,6],["Unsubscribe","A",7,1,7],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,4],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,5],["Receive","A",17,3,6] ],
+
+[[2,1],[2,9],[3,1],[3,14],[4,1],[5,1],[6,1],[6,9],[7,1],[7,14],[9,8],[11,9],[12,9],[14,8],[16,14],[17,14]],
+[[3,2],[4,3],[4,19],[5,4],[5,20],[6,5],[6,12],[7,6],[7,17],[11,2],[11,4],[12,11],[12,5],[16,3],[16,4],[17,16],[17,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,8],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Client","C",12,2,1],["Receive","A",14,2,4],["Receive","A",15,2,7] ],
+
+[[2,1],[2,12],[3,1],[4,1],[4,9],[5,1],[5,9],[6,1],[7,1],[7,12],[9,8],[12,8],[14,12],[15,12]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,15],[14,2],[14,3],[15,14],[15,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,6],["Client","C",13,2,1],["Receive","A",15,2,4] ],
+
+[[2,1],[2,13],[3,1],[4,1],[4,9],[5,1],[5,13],[6,1],[7,1],[7,9],[9,8],[11,9],[13,8],[15,13]],
+[[3,2],[4,3],[5,4],[5,15],[6,5],[7,6],[7,11],[11,4],[11,6],[15,2],[15,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,8],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,3],["Client","C",13,2,1],["Receive","A",15,2,7] ],
+
+[[2,1],[2,9],[3,1],[4,1],[4,13],[5,1],[5,9],[6,1],[7,1],[7,13],[9,8],[11,9],[13,8],[15,13]],
+[[3,2],[4,3],[5,4],[5,11],[6,5],[7,6],[7,15],[11,2],[11,3],[15,4],[15,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,3],["Receive","A",12,1,6],["Client","C",14,2,1] ],
+
+[[2,1],[2,9],[3,1],[4,1],[4,14],[5,1],[5,14],[6,1],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,12],[11,2],[11,3],[12,11],[12,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,5],["Client","C",13,3,1],["Receive","A",15,3,4],["Receive","A",16,3,6] ],
+
+[[2,1],[2,13],[3,1],[4,1],[4,9],[5,1],[6,1],[6,13],[7,1],[7,9],[9,8],[11,9],[13,8],[15,13],[16,13]],
+[[3,2],[4,3],[5,4],[5,18],[6,5],[6,16],[7,6],[7,11],[11,4],[11,5],[15,2],[15,3],[16,15],[16,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,6],["Unsubscribe","A",7,1,7],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,5],["Client","C",13,3,1],["Receive","A",15,3,4],["Receive","A",16,3,6] ],
+
+[[2,1],[2,13],[3,1],[4,1],[4,9],[5,1],[6,1],[6,9],[7,1],[7,13],[9,8],[11,9],[13,8],[15,13],[16,13]],
+[[3,2],[4,3],[5,4],[5,18],[6,5],[6,11],[7,6],[7,16],[11,4],[11,5],[15,2],[15,3],[16,15],[16,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,7],["Unsubscribe","A",7,1,8],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,3],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,6] ],
+
+[[2,1],[2,9],[3,1],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8],[16,14]],
+[[3,2],[4,3],[5,4],[5,18],[6,5],[6,16],[7,6],[7,12],[11,2],[11,3],[12,11],[12,5],[16,4],[16,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00464636, 
+[ ["this Send is received by 2 Clients","T",18,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,6],["Unsubscribe","A",7,1,7],["Subscribers","R",8,2,0],["Client","C",9,2,1],["Receive","A",11,2,3],["Receive","A",12,2,5],["Client","C",14,3,1],["Receive","A",16,3,6] ],
+
+[[2,1],[2,9],[3,1],[4,1],[4,14],[5,1],[6,1],[6,9],[7,1],[7,14],[9,8],[11,9],[12,9],[14,8],[16,14]],
+[[3,2],[4,3],[5,4],[5,18],[6,5],[6,12],[7,6],[7,16],[11,2],[11,3],[12,11],[12,5],[16,4],[16,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Client","C",12,2,1],["Receive","A",14,2,4],["Receive","A",15,2,5] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[7,9],[9,8],[12,8],[14,12],[15,12]],
+[[3,2],[4,3],[5,4],[6,5],[6,15],[7,6],[7,5],[14,2],[14,3],[15,14],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Client","C",12,2,1],["Receive","A",14,2,4],["Receive","A",15,2,5] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[5,9],[6,1],[6,9],[7,1],[7,12],[9,8],[12,8],[14,12],[15,12]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,15],[14,2],[14,3],[15,14],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,3],["Receive","A",12,1,4],["Client","C",14,2,1] ],
+
+[[2,1],[2,9],[3,1],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,9],[9,8],[11,9],[12,9],[14,8]],
+[[3,2],[4,3],[5,4],[6,5],[7,6],[7,12],[11,2],[11,3],[12,11],[12,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00464636, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Unsubscribe","A",7,0,7],["Subscribers","R",8,1,0],["Client","C",9,1,1],["Receive","A",11,1,3],["Receive","A",12,1,4],["Client","C",14,2,1] ],
+
+[[2,1],[2,9],[3,1],[4,1],[5,1],[5,14],[6,1],[6,9],[7,1],[7,14],[9,8],[11,9],[12,9],[14,8]],
+[[3,2],[4,3],[5,4],[6,5],[6,12],[7,6],[7,5],[11,2],[11,3],[12,11],[12,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00154879, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Send","A",7,0,7],["Unsubscribe","A",8,0,9],["Subscribers","R",9,1,0],["Client","C",10,1,1],["Receive","A",12,1,3],["Client","C",14,2,1],["Receive","A",16,2,7],["Receive","A",17,2,8] ],
+
+[[2,1],[2,10],[3,1],[4,1],[4,14],[5,1],[5,10],[6,1],[7,1],[8,1],[8,14],[10,9],[12,10],[14,9],[16,14],[17,14]],
+[[3,2],[4,3],[5,4],[5,12],[6,5],[7,6],[8,7],[8,17],[12,2],[12,3],[16,4],[16,6],[17,16],[17,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00154879, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Register","A",4,0,4],["Unsubscribe","A",5,0,5],["Send","A",6,0,6],["Send","A",7,0,7],["Unsubscribe","A",8,0,8],["Subscribers","R",9,1,0],["Client","C",10,1,1],["Receive","A",12,1,6],["Receive","A",13,1,7],["Client","C",15,2,1],["Receive","A",17,2,4] ],
+
+[[2,1],[2,15],[3,1],[4,1],[4,10],[5,1],[5,15],[6,1],[7,1],[8,1],[8,10],[10,9],[12,10],[13,10],[15,9],[17,15]],
+[[3,2],[4,3],[5,4],[5,17],[6,5],[7,6],[8,7],[8,13],[12,4],[12,6],[13,12],[13,7],[17,2],[17,3]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00154879, 
+[ ["this Send is received by 2 Clients","T",20,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,7],["Send","A",7,1,8],["Unsubscribe","A",8,1,9],["Subscribers","R",9,2,0],["Client","C",10,2,1],["Receive","A",12,2,5],["Receive","A",13,2,8],["Client","C",15,3,1],["Receive","A",17,3,4],["Receive","A",18,3,6] ],
+
+[[2,1],[2,15],[3,1],[4,1],[4,10],[5,1],[6,1],[6,15],[7,1],[8,1],[8,10],[10,9],[12,10],[13,10],[15,9],[17,15],[18,15]],
+[[3,2],[4,3],[5,4],[5,20],[6,5],[6,18],[7,6],[8,7],[8,13],[12,4],[12,5],[13,12],[13,7],[17,2],[17,3],[18,17],[18,5]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00154879, 
+[ ["this Send is received by 2 Clients","T",20,0,0],["Publisher","R",1,1,0],["Register","A",2,1,2],["Send","A",3,1,3],["Register","A",4,1,4],["Send","A",5,1,5],["Unsubscribe","A",6,1,6],["Send","A",7,1,7],["Unsubscribe","A",8,1,9],["Subscribers","R",9,2,0],["Client","C",10,2,1],["Receive","A",12,2,3],["Receive","A",13,2,5],["Client","C",15,3,1],["Receive","A",17,3,6],["Receive","A",18,3,8] ],
+
+[[2,1],[2,10],[3,1],[4,1],[4,15],[5,1],[6,1],[6,10],[7,1],[8,1],[8,15],[10,9],[12,10],[13,10],[15,9],[17,15],[18,15]],
+[[3,2],[4,3],[5,4],[5,20],[6,5],[6,13],[7,6],[8,7],[8,18],[12,2],[12,3],[13,12],[13,5],[17,4],[17,5],[18,17],[18,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00154879, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Send","A",7,0,7],["Unsubscribe","A",8,0,8],["Subscribers","R",9,1,0],["Client","C",10,1,1],["Receive","A",12,1,7],["Client","C",14,2,1],["Receive","A",16,2,4],["Receive","A",17,2,5] ],
+
+[[2,1],[2,14],[3,1],[4,1],[5,1],[5,10],[6,1],[6,14],[7,1],[8,1],[8,10],[10,9],[12,10],[14,9],[16,14],[17,14]],
+[[3,2],[4,3],[5,4],[6,5],[6,17],[7,6],[8,7],[8,12],[12,5],[12,7],[16,2],[16,3],[17,16],[17,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00154879, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Send","A",7,0,7],["Unsubscribe","A",8,0,9],["Subscribers","R",9,1,0],["Client","C",10,1,1],["Receive","A",12,1,3],["Receive","A",13,1,4],["Client","C",15,2,1],["Receive","A",17,2,8] ],
+
+[[2,1],[2,10],[3,1],[4,1],[5,1],[5,15],[6,1],[6,10],[7,1],[8,1],[8,15],[10,9],[12,10],[13,10],[15,9],[17,15]],
+[[3,2],[4,3],[5,4],[6,5],[6,13],[7,6],[8,7],[8,17],[12,2],[12,3],[13,12],[13,4],[17,5],[17,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000516262, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Send","A",7,0,7],["Send","A",8,0,8],["Unsubscribe","A",9,0,9],["Subscribers","R",10,1,0],["Client","C",11,1,1],["Receive","A",13,1,7],["Receive","A",14,1,8],["Client","C",16,2,1],["Receive","A",18,2,4],["Receive","A",19,2,5] ],
+
+[[2,1],[2,16],[3,1],[4,1],[5,1],[5,11],[6,1],[6,16],[7,1],[8,1],[9,1],[9,11],[11,10],[13,11],[14,11],[16,10],[18,16],[19,16]],
+[[3,2],[4,3],[5,4],[6,5],[6,19],[7,6],[8,7],[9,8],[9,14],[13,5],[13,7],[14,13],[14,8],[18,2],[18,3],[19,18],[19,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000516262, 
+[ ["Publisher","R",1,0,0],["Register","A",2,0,2],["Send","A",3,0,3],["Send","A",4,0,4],["Register","A",5,0,5],["Unsubscribe","A",6,0,6],["Send","A",7,0,7],["Send","A",8,0,8],["Unsubscribe","A",9,0,10],["Subscribers","R",10,1,0],["Client","C",11,1,1],["Receive","A",13,1,3],["Receive","A",14,1,4],["Client","C",16,2,1],["Receive","A",18,2,8],["Receive","A",19,2,9] ],
+
+[[2,1],[2,11],[3,1],[4,1],[5,1],[5,16],[6,1],[6,11],[7,1],[8,1],[9,1],[9,16],[11,10],[13,11],[14,11],[16,10],[18,16],[19,16]],
+[[3,2],[4,3],[5,4],[6,5],[6,14],[7,6],[8,7],[9,8],[9,19],[13,2],[13,3],[14,13],[14,4],[18,5],[18,7],[19,18],[19,8]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example12_network_topology_ring.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example12_network_topology_ring.json
new file mode 100644
index 0000000..613ab7f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example12_network_topology_ring.json
@@ -0,0 +1,323 @@
+{"traces":[
+
+["U", 0.635762, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1] ],
+
+[[2,1]],
+[],
+["left_neighbor_of", [2,2]],
+["right_neighbor_of", [2,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0397351, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["receive_from_right","A",4,0,3] ],
+
+[[2,1],[3,2],[4,2]],
+[[4,3]],
+["left_neighbor_of", [2,2]],
+["right_neighbor_of", [2,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0397351, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["receive_from_left","A",4,0,3] ],
+
+[[2,1],[3,2],[4,2]],
+[[4,3]],
+["left_neighbor_of", [2,2]],
+["right_neighbor_of", [2,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.211921, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["Node","C",3,1,1] ],
+
+[[2,1],[3,1]],
+[],
+["left_neighbor_of", [2,3],[3,2]],
+["right_neighbor_of", [2,3],[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013245, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["Node","C",4,1,1],["receive_from_right","A",5,1,2] ],
+
+[[2,1],[3,2],[4,1],[5,4]],
+[[5,3]],
+["left_neighbor_of", [2,4],[4,2]],
+["right_neighbor_of", [2,4],[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013245, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["Node","C",4,1,1],["receive_from_left","A",5,1,2] ],
+
+[[2,1],[3,2],[4,1],[5,4]],
+[[5,3]],
+["left_neighbor_of", [2,4],[4,2]],
+["right_neighbor_of", [2,4],[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013245, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,2],["Node","C",4,1,1],["send_right","A",5,1,2] ],
+
+[[2,1],[3,2],[4,1],[5,4]],
+[[3,5]],
+["left_neighbor_of", [2,4],[4,2]],
+["right_neighbor_of", [2,4],[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013245, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,2],["Node","C",4,1,1],["send_left","A",5,1,2] ],
+
+[[2,1],[3,2],[4,1],[5,4]],
+[[3,5]],
+["left_neighbor_of", [2,4],[4,2]],
+["right_neighbor_of", [2,4],[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["send_left","A",4,0,3],["Node","C",5,1,1],["receive_from_right","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["send_right","A",4,0,3],["Node","C",5,1,1],["receive_from_left","A",6,1,3],["receive_from_right","A",7,1,4] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,4],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["send_right","A",4,0,3],["Node","C",5,1,1],["receive_from_right","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,6],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["receive_from_right","A",6,1,2],["send_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,7],[6,3],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,6],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_left","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["receive_from_right","A",6,1,2],["send_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,7],[6,3],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["send_left","A",4,0,3],["Node","C",5,1,1],["receive_from_left","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["send_left","A",4,0,3],["Node","C",5,1,1],["receive_from_right","A",6,1,3],["receive_from_left","A",7,1,4] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,4],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["send_right","A",4,0,3],["Node","C",5,1,1],["receive_from_left","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[6,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,6],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["receive_from_left","A",6,1,2],["send_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,7],[6,3],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,6],[7,6],[7,3]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["send_right","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["receive_from_left","A",6,1,2],["send_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[4,7],[6,3],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,2],["send_left","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,2],["send_right","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["send_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[4,7],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,3],["receive_from_right","A",4,0,4],["Node","C",5,1,1],["send_left","A",6,1,2],["send_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,7],[4,3],[4,6],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_left","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["send_right","A",6,1,2],["send_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[4,7],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,2],["send_left","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["receive_from_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,2],["send_right","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["receive_from_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[7,6],[7,4]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,2],["receive_from_left","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["send_right","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[4,7],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,3],["receive_from_left","A",4,0,4],["Node","C",5,1,1],["send_right","A",6,1,2],["send_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,7],[4,3],[4,6],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000827815, 
+[ ["Ring","R",1,0,0],["Node","C",2,0,1],["receive_from_right","A",3,0,2],["receive_from_right","A",4,0,3],["Node","C",5,1,1],["send_left","A",6,1,2],["send_left","A",7,1,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[3,6],[4,3],[4,7],[7,6]],
+["left_neighbor_of", [2,5],[5,2]],
+["right_neighbor_of", [2,5],[5,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example13_FiniteStateDiagram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example13_FiniteStateDiagram.json
new file mode 100644
index 0000000..8bdb86c
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example13_FiniteStateDiagram.json
@@ -0,0 +1,243 @@
+{"traces":[
+
+["U", 0.161616, 
+[ ["The path: ","T",23,0,0],["Start","T",24,0,1],["S1","T",25,0,2],["a","T",26,0,3],["S3","T",27,0,4],["b","T",28,0,5],["S4","T",29,0,6],["a","T",30,0,7],["S2","T",31,0,8],["End","T",32,0,9],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,6],["a","A",8,2,7],["S2","A",9,2,8],["End","A",10,2,9],["S3_behavior","R",11,3,0],["S3","A",14,3,4],["S3_to_S4","C",15,3,5],["b","A",16,3,6],["S4_behavior","R",17,4,0],["S4","A",20,4,5] ],
+
+[[2,1],[3,1],[4,1],[4,11],[5,4],[7,6],[7,17],[8,7],[9,6],[10,6],[14,11],[15,11],[15,17],[16,15],[20,17]],
+[[3,2],[4,3],[7,20],[9,7],[10,9],[14,4],[15,14],[20,15]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.161616, 
+[ ["The path: ","T",26,0,0],["Start","T",27,0,1],["S1","T",28,0,2],["a","T",29,0,3],["S3","T",30,0,4],["a","T",31,0,5],["S3","T",32,0,6],["b","T",33,0,7],["S4","T",34,0,8],["a","T",35,0,9],["S2","T",36,0,10],["End","T",37,0,11],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,9],["a","A",8,2,10],["S2","A",9,2,11],["End","A",10,2,12],["S3_behavior","R",11,3,0],["S3","A",14,3,4],["S3_to_S3","C",15,3,5],["a","A",16,3,6],["S3","A",17,3,7],["S3_to_S4","C",18,3,8],["b","A",19,3,9],["S4_behavior","R",20,4,0],["S4","A",23,4,8] ],
+
+[[2,1],[3,1],[4,1],[4,11],[5,4],[7,6],[7,20],[8,7],[9,6],[10,6],[14,11],[15,11],[16,15],[17,11],[18,11],[18,20],[19,18],[23,20]],
+[[3,2],[4,3],[7,23],[9,7],[10,9],[14,4],[15,14],[17,15],[18,17],[23,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.161616, 
+[ ["The path: ","T",29,0,0],["Start","T",30,0,1],["S1","T",31,0,2],["a","T",32,0,3],["S3","T",33,0,4],["a","T",34,0,5],["S3","T",35,0,6],["a","T",36,0,7],["S3","T",37,0,8],["b","T",38,0,9],["S4","T",39,0,10],["a","T",40,0,11],["S2","T",41,0,12],["End","T",42,0,13],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,12],["a","A",8,2,13],["S2","A",9,2,14],["End","A",10,2,15],["S3_behavior","R",11,3,0],["S3","A",14,3,4],["S3_to_S3","C",15,3,5],["a","A",16,3,6],["S3","A",17,3,7],["S3_to_S3","C",18,3,8],["a","A",19,3,9],["S3","A",20,3,10],["S3_to_S4","C",21,3,11],["b","A",22,3,12],["S4_behavior","R",23,4,0],["S4","A",26,4,11] ],
+
+[[2,1],[3,1],[4,1],[4,11],[5,4],[7,6],[7,23],[8,7],[9,6],[10,6],[14,11],[15,11],[16,15],[17,11],[18,11],[19,18],[20,11],[21,11],[21,23],[22,21],[26,23]],
+[[3,2],[4,3],[7,26],[9,7],[10,9],[14,4],[15,14],[17,15],[18,17],[20,18],[21,20],[26,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.121212, 
+[ ["The path: ","T",18,0,0],["Start","T",19,0,1],["S1","T",20,0,2],["a","T",21,0,3],["S4","T",22,0,4],["a","T",23,0,5],["S2","T",24,0,6],["End","T",25,0,7],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,5],["a","A",8,2,6],["S2","A",9,2,7],["End","A",10,2,8],["S3_behavior","R",11,3,0],["S4_behavior","R",12,4,0],["S4","A",15,4,4] ],
+
+[[2,1],[3,1],[4,1],[4,12],[5,4],[7,6],[7,12],[8,7],[9,6],[10,6],[15,12]],
+[[3,2],[4,3],[7,15],[9,7],[10,9],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.121212, 
+[ ["The path: ","T",18,0,0],["Start","T",19,0,1],["S1","T",20,0,2],["b","T",21,0,3],["S4","T",22,0,4],["a","T",23,0,5],["S2","T",24,0,6],["End","T",25,0,7],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_behavior","R",6,2,0],["S4_to_S2","C",7,2,5],["a","A",8,2,6],["S2","A",9,2,7],["End","A",10,2,8],["S3_behavior","R",11,3,0],["S4_behavior","R",12,4,0],["S4","A",15,4,4] ],
+
+[[2,1],[3,1],[4,1],[4,12],[5,4],[7,6],[7,12],[8,7],[9,6],[10,6],[15,12]],
+[[3,2],[4,3],[7,15],[9,7],[10,9],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",43,0,0],["Start","T",44,0,1],["S1","T",45,0,2],["a","T",46,0,3],["S3","T",47,0,4],["b","T",48,0,5],["S4","T",49,0,6],["a","T",50,0,7],["S2","T",51,0,8],["b","T",52,0,9],["S1","T",53,0,10],["a","T",54,0,11],["S3","T",55,0,12],["b","T",56,0,13],["S4","T",57,0,14],["a","T",58,0,15],["S2","T",59,0,16],["End","T",60,0,17],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,8],["b","A",7,1,9],["S1","A",8,1,10],["S1_to_S3","C",9,1,11],["a","A",10,1,12],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,6],["a","A",13,2,7],["S2","A",14,2,8],["S4_to_S2","C",17,2,14],["a","A",18,2,15],["S2","A",19,2,16],["End","A",20,2,17],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S4","C",25,3,5],["b","A",26,3,6],["S3","A",29,3,12],["S3_to_S4","C",30,3,13],["b","A",31,3,14],["S4_behavior","R",32,4,0],["S4","A",35,4,5],["S4","A",40,4,13] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,32],[13,12],[14,11],[17,11],[17,32],[18,17],[19,11],[20,11],[24,21],[25,21],[25,32],[26,25],[29,21],[30,21],[30,32],[31,30],[35,32],[40,32]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,25],[12,35],[14,12],[17,6],[17,40],[19,17],[20,19],[24,4],[25,24],[29,9],[30,29],[30,12],[35,25],[40,30]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",46,0,0],["Start","T",47,0,1],["S1","T",48,0,2],["a","T",49,0,3],["S3","T",50,0,4],["b","T",51,0,5],["S4","T",52,0,6],["a","T",53,0,7],["S2","T",54,0,8],["b","T",55,0,9],["S1","T",56,0,10],["a","T",57,0,11],["S3","T",58,0,12],["a","T",59,0,13],["S3","T",60,0,14],["b","T",61,0,15],["S4","T",62,0,16],["a","T",63,0,17],["S2","T",64,0,18],["End","T",65,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,8],["b","A",7,1,9],["S1","A",8,1,10],["S1_to_S3","C",9,1,11],["a","A",10,1,12],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,6],["a","A",13,2,7],["S2","A",14,2,8],["S4_to_S2","C",17,2,17],["a","A",18,2,18],["S2","A",19,2,19],["End","A",20,2,20],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S4","C",25,3,5],["b","A",26,3,6],["S3","A",29,3,12],["S3_to_S3","C",30,3,13],["a","A",31,3,14],["S3","A",32,3,15],["S3_to_S4","C",33,3,16],["b","A",34,3,17],["S4_behavior","R",35,4,0],["S4","A",38,4,5],["S4","A",43,4,16] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,35],[13,12],[14,11],[17,11],[17,35],[18,17],[19,11],[20,11],[24,21],[25,21],[25,35],[26,25],[29,21],[30,21],[31,30],[32,21],[33,21],[33,35],[34,33],[38,35],[43,35]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,25],[12,38],[14,12],[17,6],[17,43],[19,17],[20,19],[24,4],[25,24],[29,9],[30,29],[32,30],[33,32],[33,12],[38,25],[43,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",49,0,0],["Start","T",50,0,1],["S1","T",51,0,2],["a","T",52,0,3],["S3","T",53,0,4],["b","T",54,0,5],["S4","T",55,0,6],["a","T",56,0,7],["S2","T",57,0,8],["b","T",58,0,9],["S1","T",59,0,10],["a","T",60,0,11],["S3","T",61,0,12],["a","T",62,0,13],["S3","T",63,0,14],["a","T",64,0,15],["S3","T",65,0,16],["b","T",66,0,17],["S4","T",67,0,18],["a","T",68,0,19],["S2","T",69,0,20],["End","T",70,0,21],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,8],["b","A",7,1,9],["S1","A",8,1,10],["S1_to_S3","C",9,1,11],["a","A",10,1,12],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,6],["a","A",13,2,7],["S2","A",14,2,8],["S4_to_S2","C",17,2,20],["a","A",18,2,21],["S2","A",19,2,22],["End","A",20,2,23],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S4","C",25,3,5],["b","A",26,3,6],["S3","A",29,3,12],["S3_to_S3","C",30,3,13],["a","A",31,3,14],["S3","A",32,3,15],["S3_to_S3","C",33,3,16],["a","A",34,3,17],["S3","A",35,3,18],["S3_to_S4","C",36,3,19],["b","A",37,3,20],["S4_behavior","R",38,4,0],["S4","A",41,4,5],["S4","A",46,4,19] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,38],[13,12],[14,11],[17,11],[17,38],[18,17],[19,11],[20,11],[24,21],[25,21],[25,38],[26,25],[29,21],[30,21],[31,30],[32,21],[33,21],[34,33],[35,21],[36,21],[36,38],[37,36],[41,38],[46,38]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,25],[12,41],[14,12],[17,6],[17,46],[19,17],[20,19],[24,4],[25,24],[29,9],[30,29],[32,30],[33,32],[35,33],[36,35],[36,12],[41,25],[46,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",46,0,0],["Start","T",47,0,1],["S1","T",48,0,2],["a","T",49,0,3],["S3","T",50,0,4],["a","T",51,0,5],["S3","T",52,0,6],["b","T",53,0,7],["S4","T",54,0,8],["a","T",55,0,9],["S2","T",56,0,10],["b","T",57,0,11],["S1","T",58,0,12],["a","T",59,0,13],["S3","T",60,0,14],["b","T",61,0,15],["S4","T",62,0,16],["a","T",63,0,17],["S2","T",64,0,18],["End","T",65,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,11],["b","A",7,1,12],["S1","A",8,1,13],["S1_to_S3","C",9,1,14],["a","A",10,1,15],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,9],["a","A",13,2,10],["S2","A",14,2,11],["S4_to_S2","C",17,2,17],["a","A",18,2,18],["S2","A",19,2,19],["End","A",20,2,20],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S4","C",28,3,8],["b","A",29,3,9],["S3","A",32,3,15],["S3_to_S4","C",33,3,16],["b","A",34,3,17],["S4_behavior","R",35,4,0],["S4","A",38,4,8],["S4","A",43,4,16] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,35],[13,12],[14,11],[17,11],[17,35],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,35],[29,28],[32,21],[33,21],[33,35],[34,33],[38,35],[43,35]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,28],[12,38],[14,12],[17,6],[17,43],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[32,9],[33,32],[33,12],[38,28],[43,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",49,0,0],["Start","T",50,0,1],["S1","T",51,0,2],["a","T",52,0,3],["S3","T",53,0,4],["a","T",54,0,5],["S3","T",55,0,6],["b","T",56,0,7],["S4","T",57,0,8],["a","T",58,0,9],["S2","T",59,0,10],["b","T",60,0,11],["S1","T",61,0,12],["a","T",62,0,13],["S3","T",63,0,14],["a","T",64,0,15],["S3","T",65,0,16],["b","T",66,0,17],["S4","T",67,0,18],["a","T",68,0,19],["S2","T",69,0,20],["End","T",70,0,21],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,11],["b","A",7,1,12],["S1","A",8,1,13],["S1_to_S3","C",9,1,14],["a","A",10,1,15],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,9],["a","A",13,2,10],["S2","A",14,2,11],["S4_to_S2","C",17,2,20],["a","A",18,2,21],["S2","A",19,2,22],["End","A",20,2,23],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S4","C",28,3,8],["b","A",29,3,9],["S3","A",32,3,15],["S3_to_S3","C",33,3,16],["a","A",34,3,17],["S3","A",35,3,18],["S3_to_S4","C",36,3,19],["b","A",37,3,20],["S4_behavior","R",38,4,0],["S4","A",41,4,8],["S4","A",46,4,19] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,38],[13,12],[14,11],[17,11],[17,38],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,38],[29,28],[32,21],[33,21],[34,33],[35,21],[36,21],[36,38],[37,36],[41,38],[46,38]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,28],[12,41],[14,12],[17,6],[17,46],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[32,9],[33,32],[35,33],[36,35],[36,12],[41,28],[46,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",52,0,0],["Start","T",53,0,1],["S1","T",54,0,2],["a","T",55,0,3],["S3","T",56,0,4],["a","T",57,0,5],["S3","T",58,0,6],["b","T",59,0,7],["S4","T",60,0,8],["a","T",61,0,9],["S2","T",62,0,10],["b","T",63,0,11],["S1","T",64,0,12],["a","T",65,0,13],["S3","T",66,0,14],["a","T",67,0,15],["S3","T",68,0,16],["a","T",69,0,17],["S3","T",70,0,18],["b","T",71,0,19],["S4","T",72,0,20],["a","T",73,0,21],["S2","T",74,0,22],["End","T",75,0,23],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,11],["b","A",7,1,12],["S1","A",8,1,13],["S1_to_S3","C",9,1,14],["a","A",10,1,15],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,9],["a","A",13,2,10],["S2","A",14,2,11],["S4_to_S2","C",17,2,23],["a","A",18,2,24],["S2","A",19,2,25],["End","A",20,2,26],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S4","C",28,3,8],["b","A",29,3,9],["S3","A",32,3,15],["S3_to_S3","C",33,3,16],["a","A",34,3,17],["S3","A",35,3,18],["S3_to_S3","C",36,3,19],["a","A",37,3,20],["S3","A",38,3,21],["S3_to_S4","C",39,3,22],["b","A",40,3,23],["S4_behavior","R",41,4,0],["S4","A",44,4,8],["S4","A",49,4,22] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,41],[13,12],[14,11],[17,11],[17,41],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,41],[29,28],[32,21],[33,21],[34,33],[35,21],[36,21],[37,36],[38,21],[39,21],[39,41],[40,39],[44,41],[49,41]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,28],[12,44],[14,12],[17,6],[17,49],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[32,9],[33,32],[35,33],[36,35],[38,36],[39,38],[39,12],[44,28],[49,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",49,0,0],["Start","T",50,0,1],["S1","T",51,0,2],["a","T",52,0,3],["S3","T",53,0,4],["a","T",54,0,5],["S3","T",55,0,6],["a","T",56,0,7],["S3","T",57,0,8],["b","T",58,0,9],["S4","T",59,0,10],["a","T",60,0,11],["S2","T",61,0,12],["b","T",62,0,13],["S1","T",63,0,14],["a","T",64,0,15],["S3","T",65,0,16],["b","T",66,0,17],["S4","T",67,0,18],["a","T",68,0,19],["S2","T",69,0,20],["End","T",70,0,21],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,14],["b","A",7,1,15],["S1","A",8,1,16],["S1_to_S3","C",9,1,17],["a","A",10,1,18],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,12],["a","A",13,2,13],["S2","A",14,2,14],["S4_to_S2","C",17,2,20],["a","A",18,2,21],["S2","A",19,2,22],["End","A",20,2,23],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S3","C",28,3,8],["a","A",29,3,9],["S3","A",30,3,10],["S3_to_S4","C",31,3,11],["b","A",32,3,12],["S3","A",35,3,18],["S3_to_S4","C",36,3,19],["b","A",37,3,20],["S4_behavior","R",38,4,0],["S4","A",41,4,11],["S4","A",46,4,19] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,38],[13,12],[14,11],[17,11],[17,38],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,38],[32,31],[35,21],[36,21],[36,38],[37,36],[41,38],[46,38]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,31],[12,41],[14,12],[17,6],[17,46],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[30,28],[31,30],[35,9],[36,35],[36,12],[41,31],[46,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",52,0,0],["Start","T",53,0,1],["S1","T",54,0,2],["a","T",55,0,3],["S3","T",56,0,4],["a","T",57,0,5],["S3","T",58,0,6],["a","T",59,0,7],["S3","T",60,0,8],["b","T",61,0,9],["S4","T",62,0,10],["a","T",63,0,11],["S2","T",64,0,12],["b","T",65,0,13],["S1","T",66,0,14],["a","T",67,0,15],["S3","T",68,0,16],["a","T",69,0,17],["S3","T",70,0,18],["b","T",71,0,19],["S4","T",72,0,20],["a","T",73,0,21],["S2","T",74,0,22],["End","T",75,0,23],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,14],["b","A",7,1,15],["S1","A",8,1,16],["S1_to_S3","C",9,1,17],["a","A",10,1,18],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,12],["a","A",13,2,13],["S2","A",14,2,14],["S4_to_S2","C",17,2,23],["a","A",18,2,24],["S2","A",19,2,25],["End","A",20,2,26],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S3","C",28,3,8],["a","A",29,3,9],["S3","A",30,3,10],["S3_to_S4","C",31,3,11],["b","A",32,3,12],["S3","A",35,3,18],["S3_to_S3","C",36,3,19],["a","A",37,3,20],["S3","A",38,3,21],["S3_to_S4","C",39,3,22],["b","A",40,3,23],["S4_behavior","R",41,4,0],["S4","A",44,4,11],["S4","A",49,4,22] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,41],[13,12],[14,11],[17,11],[17,41],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,41],[32,31],[35,21],[36,21],[37,36],[38,21],[39,21],[39,41],[40,39],[44,41],[49,41]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,31],[12,44],[14,12],[17,6],[17,49],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[30,28],[31,30],[35,9],[36,35],[38,36],[39,38],[39,12],[44,31],[49,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["The path: ","T",55,0,0],["Start","T",56,0,1],["S1","T",57,0,2],["a","T",58,0,3],["S3","T",59,0,4],["a","T",60,0,5],["S3","T",61,0,6],["a","T",62,0,7],["S3","T",63,0,8],["b","T",64,0,9],["S4","T",65,0,10],["a","T",66,0,11],["S2","T",67,0,12],["b","T",68,0,13],["S1","T",69,0,14],["a","T",70,0,15],["S3","T",71,0,16],["a","T",72,0,17],["S3","T",73,0,18],["a","T",74,0,19],["S3","T",75,0,20],["b","T",76,0,21],["S4","T",77,0,22],["a","T",78,0,23],["S2","T",79,0,24],["End","T",80,0,25],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,14],["b","A",7,1,15],["S1","A",8,1,16],["S1_to_S3","C",9,1,17],["a","A",10,1,18],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,12],["a","A",13,2,13],["S2","A",14,2,14],["S4_to_S2","C",17,2,26],["a","A",18,2,27],["S2","A",19,2,28],["End","A",20,2,29],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S3","C",28,3,8],["a","A",29,3,9],["S3","A",30,3,10],["S3_to_S4","C",31,3,11],["b","A",32,3,12],["S3","A",35,3,18],["S3_to_S3","C",36,3,19],["a","A",37,3,20],["S3","A",38,3,21],["S3_to_S3","C",39,3,22],["a","A",40,3,23],["S3","A",41,3,24],["S3_to_S4","C",42,3,25],["b","A",43,3,26],["S4_behavior","R",44,4,0],["S4","A",47,4,11],["S4","A",52,4,25] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,44],[13,12],[14,11],[17,11],[17,44],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,44],[32,31],[35,21],[36,21],[37,36],[38,21],[39,21],[40,39],[41,21],[42,21],[42,44],[43,42],[47,44],[52,44]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,31],[12,47],[14,12],[17,6],[17,52],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[30,28],[31,30],[35,9],[36,35],[38,36],[39,38],[41,39],[42,41],[42,12],[47,31],[52,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",38,0,0],["Start","T",39,0,1],["S1","T",40,0,2],["a","T",41,0,3],["S3","T",42,0,4],["b","T",43,0,5],["S4","T",44,0,6],["a","T",45,0,7],["S2","T",46,0,8],["b","T",47,0,9],["S1","T",48,0,10],["a","T",49,0,11],["S4","T",50,0,12],["a","T",51,0,13],["S2","T",52,0,14],["End","T",53,0,15],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,8],["b","A",7,1,9],["S1","A",8,1,10],["S1_to_S4","C",9,1,11],["a","A",10,1,12],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,6],["a","A",13,2,7],["S2","A",14,2,8],["S4_to_S2","C",17,2,13],["a","A",18,2,14],["S2","A",19,2,15],["End","A",20,2,16],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S4","C",25,3,5],["b","A",26,3,6],["S4_behavior","R",27,4,0],["S4","A",30,4,5],["S4","A",35,4,12] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,27],[10,9],[12,11],[12,27],[13,12],[14,11],[17,11],[17,27],[18,17],[19,11],[20,11],[24,21],[25,21],[25,27],[26,25],[30,27],[35,27]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,30],[14,12],[17,6],[17,35],[19,17],[20,19],[24,4],[25,24],[30,25],[35,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",41,0,0],["Start","T",42,0,1],["S1","T",43,0,2],["a","T",44,0,3],["S3","T",45,0,4],["a","T",46,0,5],["S3","T",47,0,6],["b","T",48,0,7],["S4","T",49,0,8],["a","T",50,0,9],["S2","T",51,0,10],["b","T",52,0,11],["S1","T",53,0,12],["a","T",54,0,13],["S4","T",55,0,14],["a","T",56,0,15],["S2","T",57,0,16],["End","T",58,0,17],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,11],["b","A",7,1,12],["S1","A",8,1,13],["S1_to_S4","C",9,1,14],["a","A",10,1,15],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,9],["a","A",13,2,10],["S2","A",14,2,11],["S4_to_S2","C",17,2,16],["a","A",18,2,17],["S2","A",19,2,18],["End","A",20,2,19],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S4","C",28,3,8],["b","A",29,3,9],["S4_behavior","R",30,4,0],["S4","A",33,4,8],["S4","A",38,4,15] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,30],[10,9],[12,11],[12,30],[13,12],[14,11],[17,11],[17,30],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,30],[29,28],[33,30],[38,30]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,33],[14,12],[17,6],[17,38],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[33,28],[38,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",44,0,0],["Start","T",45,0,1],["S1","T",46,0,2],["a","T",47,0,3],["S3","T",48,0,4],["a","T",49,0,5],["S3","T",50,0,6],["a","T",51,0,7],["S3","T",52,0,8],["b","T",53,0,9],["S4","T",54,0,10],["a","T",55,0,11],["S2","T",56,0,12],["b","T",57,0,13],["S1","T",58,0,14],["a","T",59,0,15],["S4","T",60,0,16],["a","T",61,0,17],["S2","T",62,0,18],["End","T",63,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,14],["b","A",7,1,15],["S1","A",8,1,16],["S1_to_S4","C",9,1,17],["a","A",10,1,18],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,12],["a","A",13,2,13],["S2","A",14,2,14],["S4_to_S2","C",17,2,19],["a","A",18,2,20],["S2","A",19,2,21],["End","A",20,2,22],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S3","C",28,3,8],["a","A",29,3,9],["S3","A",30,3,10],["S3_to_S4","C",31,3,11],["b","A",32,3,12],["S4_behavior","R",33,4,0],["S4","A",36,4,11],["S4","A",41,4,18] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,33],[10,9],[12,11],[12,33],[13,12],[14,11],[17,11],[17,33],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,33],[32,31],[36,33],[41,33]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,36],[14,12],[17,6],[17,41],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[30,28],[31,30],[36,31],[41,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",38,0,0],["Start","T",39,0,1],["S1","T",40,0,2],["a","T",41,0,3],["S3","T",42,0,4],["b","T",43,0,5],["S4","T",44,0,6],["a","T",45,0,7],["S2","T",46,0,8],["b","T",47,0,9],["S1","T",48,0,10],["b","T",49,0,11],["S4","T",50,0,12],["a","T",51,0,13],["S2","T",52,0,14],["End","T",53,0,15],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,8],["b","A",7,1,9],["S1","A",8,1,10],["S1_to_S4","C",9,1,11],["b","A",10,1,12],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,6],["a","A",13,2,7],["S2","A",14,2,8],["S4_to_S2","C",17,2,13],["a","A",18,2,14],["S2","A",19,2,15],["End","A",20,2,16],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S4","C",25,3,5],["b","A",26,3,6],["S4_behavior","R",27,4,0],["S4","A",30,4,5],["S4","A",35,4,12] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,27],[10,9],[12,11],[12,27],[13,12],[14,11],[17,11],[17,27],[18,17],[19,11],[20,11],[24,21],[25,21],[25,27],[26,25],[30,27],[35,27]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,30],[14,12],[17,6],[17,35],[19,17],[20,19],[24,4],[25,24],[30,25],[35,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",41,0,0],["Start","T",42,0,1],["S1","T",43,0,2],["a","T",44,0,3],["S3","T",45,0,4],["a","T",46,0,5],["S3","T",47,0,6],["b","T",48,0,7],["S4","T",49,0,8],["a","T",50,0,9],["S2","T",51,0,10],["b","T",52,0,11],["S1","T",53,0,12],["b","T",54,0,13],["S4","T",55,0,14],["a","T",56,0,15],["S2","T",57,0,16],["End","T",58,0,17],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,11],["b","A",7,1,12],["S1","A",8,1,13],["S1_to_S4","C",9,1,14],["b","A",10,1,15],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,9],["a","A",13,2,10],["S2","A",14,2,11],["S4_to_S2","C",17,2,16],["a","A",18,2,17],["S2","A",19,2,18],["End","A",20,2,19],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S4","C",28,3,8],["b","A",29,3,9],["S4_behavior","R",30,4,0],["S4","A",33,4,8],["S4","A",38,4,15] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,30],[10,9],[12,11],[12,30],[13,12],[14,11],[17,11],[17,30],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,30],[29,28],[33,30],[38,30]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,33],[14,12],[17,6],[17,38],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[33,28],[38,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",44,0,0],["Start","T",45,0,1],["S1","T",46,0,2],["a","T",47,0,3],["S3","T",48,0,4],["a","T",49,0,5],["S3","T",50,0,6],["a","T",51,0,7],["S3","T",52,0,8],["b","T",53,0,9],["S4","T",54,0,10],["a","T",55,0,11],["S2","T",56,0,12],["b","T",57,0,13],["S1","T",58,0,14],["b","T",59,0,15],["S4","T",60,0,16],["a","T",61,0,17],["S2","T",62,0,18],["End","T",63,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S3","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,14],["b","A",7,1,15],["S1","A",8,1,16],["S1_to_S4","C",9,1,17],["b","A",10,1,18],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,12],["a","A",13,2,13],["S2","A",14,2,14],["S4_to_S2","C",17,2,19],["a","A",18,2,20],["S2","A",19,2,21],["End","A",20,2,22],["S3_behavior","R",21,3,0],["S3","A",24,3,4],["S3_to_S3","C",25,3,5],["a","A",26,3,6],["S3","A",27,3,7],["S3_to_S3","C",28,3,8],["a","A",29,3,9],["S3","A",30,3,10],["S3_to_S4","C",31,3,11],["b","A",32,3,12],["S4_behavior","R",33,4,0],["S4","A",36,4,11],["S4","A",41,4,18] ],
+
+[[2,1],[3,1],[4,1],[4,21],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,33],[10,9],[12,11],[12,33],[13,12],[14,11],[17,11],[17,33],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,33],[32,31],[36,33],[41,33]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,36],[14,12],[17,6],[17,41],[19,17],[20,19],[24,4],[25,24],[27,25],[28,27],[30,28],[31,30],[36,31],[41,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",38,0,0],["Start","T",39,0,1],["S1","T",40,0,2],["a","T",41,0,3],["S4","T",42,0,4],["a","T",43,0,5],["S2","T",44,0,6],["b","T",45,0,7],["S1","T",46,0,8],["a","T",47,0,9],["S3","T",48,0,10],["b","T",49,0,11],["S4","T",50,0,12],["a","T",51,0,13],["S2","T",52,0,14],["End","T",53,0,15],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,13],["a","A",18,2,14],["S2","A",19,2,15],["End","A",20,2,16],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S4","C",25,3,12],["b","A",26,3,13],["S4_behavior","R",27,4,0],["S4","A",30,4,4],["S4","A",35,4,12] ],
+
+[[2,1],[3,1],[4,1],[4,27],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,27],[13,12],[14,11],[17,11],[17,27],[18,17],[19,11],[20,11],[24,21],[25,21],[25,27],[26,25],[30,27],[35,27]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,30],[14,12],[17,6],[17,35],[19,17],[20,19],[24,9],[25,24],[25,12],[30,4],[35,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",41,0,0],["Start","T",42,0,1],["S1","T",43,0,2],["a","T",44,0,3],["S4","T",45,0,4],["a","T",46,0,5],["S2","T",47,0,6],["b","T",48,0,7],["S1","T",49,0,8],["a","T",50,0,9],["S3","T",51,0,10],["a","T",52,0,11],["S3","T",53,0,12],["b","T",54,0,13],["S4","T",55,0,14],["a","T",56,0,15],["S2","T",57,0,16],["End","T",58,0,17],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,16],["a","A",18,2,17],["S2","A",19,2,18],["End","A",20,2,19],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S3","C",25,3,12],["a","A",26,3,13],["S3","A",27,3,14],["S3_to_S4","C",28,3,15],["b","A",29,3,16],["S4_behavior","R",30,4,0],["S4","A",33,4,4],["S4","A",38,4,15] ],
+
+[[2,1],[3,1],[4,1],[4,30],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,30],[13,12],[14,11],[17,11],[17,30],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,30],[29,28],[33,30],[38,30]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,33],[14,12],[17,6],[17,38],[19,17],[20,19],[24,9],[25,24],[27,25],[28,27],[28,12],[33,4],[38,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",44,0,0],["Start","T",45,0,1],["S1","T",46,0,2],["a","T",47,0,3],["S4","T",48,0,4],["a","T",49,0,5],["S2","T",50,0,6],["b","T",51,0,7],["S1","T",52,0,8],["a","T",53,0,9],["S3","T",54,0,10],["a","T",55,0,11],["S3","T",56,0,12],["a","T",57,0,13],["S3","T",58,0,14],["b","T",59,0,15],["S4","T",60,0,16],["a","T",61,0,17],["S2","T",62,0,18],["End","T",63,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,19],["a","A",18,2,20],["S2","A",19,2,21],["End","A",20,2,22],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S3","C",25,3,12],["a","A",26,3,13],["S3","A",27,3,14],["S3_to_S3","C",28,3,15],["a","A",29,3,16],["S3","A",30,3,17],["S3_to_S4","C",31,3,18],["b","A",32,3,19],["S4_behavior","R",33,4,0],["S4","A",36,4,4],["S4","A",41,4,18] ],
+
+[[2,1],[3,1],[4,1],[4,33],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,33],[13,12],[14,11],[17,11],[17,33],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,33],[32,31],[36,33],[41,33]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,36],[14,12],[17,6],[17,41],[19,17],[20,19],[24,9],[25,24],[27,25],[28,27],[30,28],[31,30],[31,12],[36,4],[41,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00757576, 
+[ ["The path: ","T",33,0,0],["Start","T",34,0,1],["S1","T",35,0,2],["a","T",36,0,3],["S4","T",37,0,4],["a","T",38,0,5],["S2","T",39,0,6],["b","T",40,0,7],["S1","T",41,0,8],["a","T",42,0,9],["S4","T",43,0,10],["a","T",44,0,11],["S2","T",45,0,12],["End","T",46,0,13],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S4","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,12],["a","A",18,2,13],["S2","A",19,2,14],["End","A",20,2,15],["S3_behavior","R",21,3,0],["S4_behavior","R",22,4,0],["S4","A",25,4,4],["S4","A",30,4,11] ],
+
+[[2,1],[3,1],[4,1],[4,22],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,22],[10,9],[12,11],[12,22],[13,12],[14,11],[17,11],[17,22],[18,17],[19,11],[20,11],[25,22],[30,22]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,25],[14,12],[17,6],[17,30],[19,17],[20,19],[25,4],[30,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00757576, 
+[ ["The path: ","T",33,0,0],["Start","T",34,0,1],["S1","T",35,0,2],["a","T",36,0,3],["S4","T",37,0,4],["a","T",38,0,5],["S2","T",39,0,6],["b","T",40,0,7],["S1","T",41,0,8],["b","T",42,0,9],["S4","T",43,0,10],["a","T",44,0,11],["S2","T",45,0,12],["End","T",46,0,13],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["a","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S4","C",9,1,10],["b","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,12],["a","A",18,2,13],["S2","A",19,2,14],["End","A",20,2,15],["S3_behavior","R",21,3,0],["S4_behavior","R",22,4,0],["S4","A",25,4,4],["S4","A",30,4,11] ],
+
+[[2,1],[3,1],[4,1],[4,22],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,22],[10,9],[12,11],[12,22],[13,12],[14,11],[17,11],[17,22],[18,17],[19,11],[20,11],[25,22],[30,22]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,25],[14,12],[17,6],[17,30],[19,17],[20,19],[25,4],[30,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",38,0,0],["Start","T",39,0,1],["S1","T",40,0,2],["b","T",41,0,3],["S4","T",42,0,4],["a","T",43,0,5],["S2","T",44,0,6],["b","T",45,0,7],["S1","T",46,0,8],["a","T",47,0,9],["S3","T",48,0,10],["b","T",49,0,11],["S4","T",50,0,12],["a","T",51,0,13],["S2","T",52,0,14],["End","T",53,0,15],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,13],["a","A",18,2,14],["S2","A",19,2,15],["End","A",20,2,16],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S4","C",25,3,12],["b","A",26,3,13],["S4_behavior","R",27,4,0],["S4","A",30,4,4],["S4","A",35,4,12] ],
+
+[[2,1],[3,1],[4,1],[4,27],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,27],[13,12],[14,11],[17,11],[17,27],[18,17],[19,11],[20,11],[24,21],[25,21],[25,27],[26,25],[30,27],[35,27]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,30],[14,12],[17,6],[17,35],[19,17],[20,19],[24,9],[25,24],[25,12],[30,4],[35,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",41,0,0],["Start","T",42,0,1],["S1","T",43,0,2],["b","T",44,0,3],["S4","T",45,0,4],["a","T",46,0,5],["S2","T",47,0,6],["b","T",48,0,7],["S1","T",49,0,8],["a","T",50,0,9],["S3","T",51,0,10],["a","T",52,0,11],["S3","T",53,0,12],["b","T",54,0,13],["S4","T",55,0,14],["a","T",56,0,15],["S2","T",57,0,16],["End","T",58,0,17],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,16],["a","A",18,2,17],["S2","A",19,2,18],["End","A",20,2,19],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S3","C",25,3,12],["a","A",26,3,13],["S3","A",27,3,14],["S3_to_S4","C",28,3,15],["b","A",29,3,16],["S4_behavior","R",30,4,0],["S4","A",33,4,4],["S4","A",38,4,15] ],
+
+[[2,1],[3,1],[4,1],[4,30],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,30],[13,12],[14,11],[17,11],[17,30],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[28,30],[29,28],[33,30],[38,30]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,33],[14,12],[17,6],[17,38],[19,17],[20,19],[24,9],[25,24],[27,25],[28,27],[28,12],[33,4],[38,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.010101, 
+[ ["The path: ","T",44,0,0],["Start","T",45,0,1],["S1","T",46,0,2],["b","T",47,0,3],["S4","T",48,0,4],["a","T",49,0,5],["S2","T",50,0,6],["b","T",51,0,7],["S1","T",52,0,8],["a","T",53,0,9],["S3","T",54,0,10],["a","T",55,0,11],["S3","T",56,0,12],["a","T",57,0,13],["S3","T",58,0,14],["b","T",59,0,15],["S4","T",60,0,16],["a","T",61,0,17],["S2","T",62,0,18],["End","T",63,0,19],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S3","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,19],["a","A",18,2,20],["S2","A",19,2,21],["End","A",20,2,22],["S3_behavior","R",21,3,0],["S3","A",24,3,11],["S3_to_S3","C",25,3,12],["a","A",26,3,13],["S3","A",27,3,14],["S3_to_S3","C",28,3,15],["a","A",29,3,16],["S3","A",30,3,17],["S3_to_S4","C",31,3,18],["b","A",32,3,19],["S4_behavior","R",33,4,0],["S4","A",36,4,4],["S4","A",41,4,18] ],
+
+[[2,1],[3,1],[4,1],[4,33],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,21],[10,9],[12,11],[12,33],[13,12],[14,11],[17,11],[17,33],[18,17],[19,11],[20,11],[24,21],[25,21],[26,25],[27,21],[28,21],[29,28],[30,21],[31,21],[31,33],[32,31],[36,33],[41,33]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[12,36],[14,12],[17,6],[17,41],[19,17],[20,19],[24,9],[25,24],[27,25],[28,27],[30,28],[31,30],[31,12],[36,4],[41,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00757576, 
+[ ["The path: ","T",33,0,0],["Start","T",34,0,1],["S1","T",35,0,2],["b","T",36,0,3],["S4","T",37,0,4],["a","T",38,0,5],["S2","T",39,0,6],["b","T",40,0,7],["S1","T",41,0,8],["a","T",42,0,9],["S4","T",43,0,10],["a","T",44,0,11],["S2","T",45,0,12],["End","T",46,0,13],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S4","C",9,1,10],["a","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,12],["a","A",18,2,13],["S2","A",19,2,14],["End","A",20,2,15],["S3_behavior","R",21,3,0],["S4_behavior","R",22,4,0],["S4","A",25,4,4],["S4","A",30,4,11] ],
+
+[[2,1],[3,1],[4,1],[4,22],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,22],[10,9],[12,11],[12,22],[13,12],[14,11],[17,11],[17,22],[18,17],[19,11],[20,11],[25,22],[30,22]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,25],[14,12],[17,6],[17,30],[19,17],[20,19],[25,4],[30,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00757576, 
+[ ["The path: ","T",33,0,0],["Start","T",34,0,1],["S1","T",35,0,2],["b","T",36,0,3],["S4","T",37,0,4],["a","T",38,0,5],["S2","T",39,0,6],["b","T",40,0,7],["S1","T",41,0,8],["b","T",42,0,9],["S4","T",43,0,10],["a","T",44,0,11],["S2","T",45,0,12],["End","T",46,0,13],["S1_behavior","R",1,1,0],["Start","A",2,1,1],["S1","A",3,1,2],["S1_to_S4","C",4,1,3],["b","A",5,1,4],["S2_to_S1","C",6,1,7],["b","A",7,1,8],["S1","A",8,1,9],["S1_to_S4","C",9,1,10],["b","A",10,1,11],["S2_behavior","R",11,2,0],["S4_to_S2","C",12,2,5],["a","A",13,2,6],["S2","A",14,2,7],["S4_to_S2","C",17,2,12],["a","A",18,2,13],["S2","A",19,2,14],["End","A",20,2,15],["S3_behavior","R",21,3,0],["S4_behavior","R",22,4,0],["S4","A",25,4,4],["S4","A",30,4,11] ],
+
+[[2,1],[3,1],[4,1],[4,22],[5,4],[6,1],[6,11],[7,6],[8,1],[9,1],[9,22],[10,9],[12,11],[12,22],[13,12],[14,11],[17,11],[17,22],[18,17],[19,11],[20,11],[25,22],[30,22]],
+[[3,2],[4,3],[6,4],[6,14],[8,6],[9,8],[9,12],[12,25],[14,12],[17,6],[17,30],[19,17],[20,19],[25,4],[30,9]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example15_Petri_net.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example15_Petri_net.json
new file mode 100644
index 0000000..5e68f03
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example15_Petri_net.json
@@ -0,0 +1,39 @@
+{"traces":[
+
+["U", 0.981157, 
+[ ["At the end of simulation place P1_behavior has 1 tokens","T",11,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",12,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",13,0,2],["At the end of simulation place P4_behavior has 1 tokens","T",14,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["T1_behavior","R",3,2,0],["P2_behavior","R",4,3,0],["P3_behavior","R",5,4,0],["get_token","A",6,4,1],["get_token","A",7,4,2],["T2_behavior","R",8,5,0],["P4_behavior","R",9,6,0],["get_token","A",10,6,1] ],
+
+[[2,1],[6,5],[7,5],[10,9]],
+[[7,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0181696, 
+[ ["At the end of simulation place P1_behavior has 0 tokens","T",30,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",31,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",32,0,2],["At the end of simulation place P4_behavior has 1 tokens","T",33,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["P1_sends_to_T1","C",3,1,2],["send_token","A",4,1,3],["T1_behavior","R",5,2,0],["T1_receives_from_P1","A",6,2,2],["T1_fires","A",7,2,3],["T1_sends_to_P2","C",8,2,4],["send_token","A",9,2,5],["T1_sends_to_P3","C",10,3,3],["send_token","A",11,3,4],["P2_behavior","R",12,4,0],["P2_receives_from_T1","C",13,4,5],["get_token","A",14,4,6],["P2_sends_to_T2","C",15,4,7],["send_token","A",16,4,8],["P3_behavior","R",17,5,0],["get_token","A",18,5,1],["get_token","A",19,5,2],["P3_receives_from_T1","C",20,5,4],["get_token","A",21,5,5],["P3_sends_to_T2","C",22,5,6],["send_token","A",23,5,7],["T2_behavior","R",24,6,0],["T2_receives_from_P2","A",25,6,8],["T2_fires","A",27,6,9],["T2_receives_from_P3","A",26,7,7],["P4_behavior","R",28,8,0],["get_token","A",29,8,1] ],
+
+[[2,1],[3,1],[4,3],[6,5],[7,5],[8,5],[9,8],[10,5],[11,10],[13,12],[14,13],[15,12],[16,15],[18,17],[19,17],[20,17],[21,20],[22,17],[23,22],[25,24],[26,24],[27,24],[29,28]],
+[[3,2],[6,3],[7,6],[8,7],[10,7],[13,8],[15,13],[19,18],[20,19],[20,10],[22,20],[25,15],[26,22],[27,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000336474, 
+[ ["At the end of simulation place P1_behavior has 0 tokens","T",57,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",58,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",59,0,2],["At the end of simulation place P4_behavior has 2 tokens","T",60,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["P1_sends_to_T1","C",3,1,2],["send_token","A",4,1,3],["P1_receives_from_T2","C",5,1,11],["get_token","A",6,1,12],["P1_sends_to_T1","C",7,1,13],["send_token","A",8,1,14],["T1_behavior","R",9,2,0],["T1_receives_from_P1","A",10,2,2],["T1_fires","A",11,2,3],["T1_sends_to_P2","C",12,2,4],["send_token","A",13,2,5],["T1_receives_from_P1","A",16,2,13],["T1_fires","A",17,2,14],["T1_sends_to_P2","C",18,2,15],["send_token","A",19,2,16],["T1_sends_to_P3","C",14,3,3],["send_token","A",15,3,4],["T1_sends_to_P3","C",20,3,14],["send_token","A",21,3,15],["P2_behavior","R",22,4,0],["P2_receives_from_T1","C",23,4,5],["get_token","A",24,4,6],["P2_sends_to_T2","C",25,4,7],["send_token","A",26,4,8],["P2_receives_from_T1","C",27,4,16],["get_token","A",28,4,17],["P2_sends_to_T2","C",29,4,18],["send_token","A",30,4,19],["P3_behavior","R",31,5,0],["get_token","A",32,5,1],["get_token","A",33,5,2],["P3_sends_to_T2","C",34,5,3],["send_token","A",35,5,4],["P3_receives_from_T1","C",36,5,5],["get_token","A",37,5,6],["P3_receives_from_T1","C",38,5,15],["get_token","A",39,5,16],["P3_sends_to_T2","C",40,5,17],["send_token","A",41,5,18],["T2_behavior","R",42,6,0],["T2_receives_from_P2","A",43,6,8],["T2_fires","A",45,6,9],["T2_sends_to_P1","C",46,6,10],["send_token","A",47,6,11],["T2_receives_from_P2","A",50,6,19],["T2_fires","A",52,6,20],["T2_receives_from_P3","A",44,7,4],["T2_sends_to_P4","C",48,7,9],["send_token","A",49,7,10],["T2_receives_from_P3","A",51,7,18],["P4_behavior","R",53,8,0],["get_token","A",54,8,1],["P4_receives_from_T2","C",55,8,9],["get_token","A",56,8,10] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,5],[7,1],[8,7],[10,9],[11,9],[12,9],[13,12],[14,9],[15,14],[16,9],[17,9],[18,9],[19,18],[20,9],[21,20],[23,22],[24,23],[25,22],[26,25],[27,22],[28,27],[29,22],[30,29],[32,31],[33,31],[34,31],[35,34],[36,31],[37,36],[38,31],[39,38],[40,31],[41,40],[43,42],[44,42],[45,42],[46,42],[47,46],[48,42],[49,48],[50,42],[51,42],[52,42],[54,53],[55,53],[56,55]],
+[[3,2],[5,3],[5,46],[7,5],[10,3],[11,10],[12,11],[14,11],[16,12],[16,14],[16,7],[17,16],[18,17],[20,17],[23,12],[25,23],[27,25],[27,18],[29,27],[33,32],[34,33],[36,34],[36,14],[38,36],[38,20],[40,38],[43,25],[44,34],[45,43],[45,44],[46,45],[48,45],[50,46],[50,48],[50,29],[51,46],[51,48],[51,40],[52,50],[52,51],[55,54],[55,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000336474, 
+[ ["At the end of simulation place P1_behavior has 0 tokens","T",57,0,0],["At the end of simulation place P2_behavior has 0 tokens","T",58,0,1],["At the end of simulation place P3_behavior has 2 tokens","T",59,0,2],["At the end of simulation place P4_behavior has 2 tokens","T",60,0,3],["P1_behavior","R",1,1,0],["get_token","A",2,1,1],["P1_sends_to_T1","C",3,1,2],["send_token","A",4,1,3],["P1_receives_from_T2","C",5,1,11],["get_token","A",6,1,12],["P1_sends_to_T1","C",7,1,13],["send_token","A",8,1,14],["T1_behavior","R",9,2,0],["T1_receives_from_P1","A",10,2,2],["T1_fires","A",11,2,3],["T1_sends_to_P2","C",12,2,4],["send_token","A",13,2,5],["T1_receives_from_P1","A",16,2,13],["T1_fires","A",17,2,14],["T1_sends_to_P2","C",18,2,15],["send_token","A",19,2,16],["T1_sends_to_P3","C",14,3,3],["send_token","A",15,3,4],["T1_sends_to_P3","C",20,3,14],["send_token","A",21,3,15],["P2_behavior","R",22,4,0],["P2_receives_from_T1","C",23,4,5],["get_token","A",24,4,6],["P2_sends_to_T2","C",25,4,7],["send_token","A",26,4,8],["P2_receives_from_T1","C",27,4,16],["get_token","A",28,4,17],["P2_sends_to_T2","C",29,4,18],["send_token","A",30,4,19],["P3_behavior","R",31,5,0],["get_token","A",32,5,1],["get_token","A",33,5,2],["P3_receives_from_T1","C",34,5,4],["get_token","A",35,5,5],["P3_sends_to_T2","C",36,5,6],["send_token","A",37,5,7],["P3_receives_from_T1","C",38,5,15],["get_token","A",39,5,16],["P3_sends_to_T2","C",40,5,17],["send_token","A",41,5,18],["T2_behavior","R",42,6,0],["T2_receives_from_P2","A",43,6,8],["T2_fires","A",45,6,9],["T2_sends_to_P1","C",46,6,10],["send_token","A",47,6,11],["T2_receives_from_P2","A",50,6,19],["T2_fires","A",52,6,20],["T2_receives_from_P3","A",44,7,7],["T2_sends_to_P4","C",48,7,9],["send_token","A",49,7,10],["T2_receives_from_P3","A",51,7,18],["P4_behavior","R",53,8,0],["get_token","A",54,8,1],["P4_receives_from_T2","C",55,8,9],["get_token","A",56,8,10] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,5],[7,1],[8,7],[10,9],[11,9],[12,9],[13,12],[14,9],[15,14],[16,9],[17,9],[18,9],[19,18],[20,9],[21,20],[23,22],[24,23],[25,22],[26,25],[27,22],[28,27],[29,22],[30,29],[32,31],[33,31],[34,31],[35,34],[36,31],[37,36],[38,31],[39,38],[40,31],[41,40],[43,42],[44,42],[45,42],[46,42],[47,46],[48,42],[49,48],[50,42],[51,42],[52,42],[54,53],[55,53],[56,55]],
+[[3,2],[5,3],[5,46],[7,5],[10,3],[11,10],[12,11],[14,11],[16,12],[16,14],[16,7],[17,16],[18,17],[20,17],[23,12],[25,23],[27,25],[27,18],[29,27],[33,32],[34,33],[34,14],[36,34],[38,36],[38,20],[40,38],[43,25],[44,36],[45,43],[45,44],[46,45],[48,45],[50,46],[50,48],[50,29],[51,46],[51,48],[51,40],[52,50],[52,51],[55,54],[55,48]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["Petri net diagram",
+ [ [0, "P1_behavior"] ,[1, "Start"] ,[2, "T1_behavior"] ,[3, "P2_behavior"] ,[4, "P3_behavior"] ,[5, "T2_behavior"] ,[6, "P4_behavior"] ],
+ [ [0,2,"1"],[1,0,"initial 1 tokens"],[1,4,"initial 2 tokens"],[1,6,"initial 1 tokens"],[2,3,"1"],[2,4,"1"],[3,5,"1"],[4,5,"1"],[5,0,"1"],[5,6,"1"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example16_software_spiral_process.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example16_software_spiral_process.json
new file mode 100644
index 0000000..77e5c92
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example16_software_spiral_process.json
@@ -0,0 +1,59 @@
+{"traces":[
+
+["U", 0.571429, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_satisfied","A",4,0,5],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Spiral_process","R",5,1,0],["Initial_requirements","A",7,1,2],["Initial_design","C",8,1,3],["Architecture_design","A",9,1,4],["Detailed_design","A",10,1,6],["Coding","A",11,1,7],["Testing","A",12,1,8],["Delivery_of_the_system","A",15,1,9],["Architect","R",16,2,0],["Developers","R",21,3,0] ],
+
+[[2,1],[2,5],[2,16],[3,1],[3,5],[3,16],[4,1],[4,5],[7,5],[7,16],[8,5],[9,8],[9,16],[10,8],[10,21],[11,8],[11,21],[12,8],[12,21],[15,5]],
+[[3,2],[3,8],[3,9],[4,3],[7,2],[8,7],[9,7],[10,9],[11,10],[12,11],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_satisfied","A",6,0,12],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,12],["Spiral_process","R",7,1,0],["Initial_requirements","A",9,1,2],["Initial_design","C",10,1,3],["Architecture_design","A",11,1,4],["Detailed_design","A",12,1,6],["Coding","A",13,1,7],["Testing","A",14,1,8],["One_iteration","C",16,1,9],["Adjust_requirements","A",18,1,10],["Redesign","C",19,1,11],["Detailed_redesign","A",20,1,13],["Coding","A",21,1,14],["Testing","A",22,1,15],["Delivery_of_the_system","A",25,1,16],["Architect","R",26,2,0],["Developers","R",33,3,0] ],
+
+[[2,1],[2,7],[2,26],[3,1],[3,7],[3,26],[4,1],[4,16],[5,1],[5,16],[5,26],[6,1],[6,7],[9,7],[9,26],[10,7],[11,10],[11,26],[12,10],[12,33],[13,10],[13,33],[14,10],[14,33],[16,7],[18,16],[18,26],[19,16],[20,19],[20,33],[21,19],[21,33],[22,19],[22,33],[25,7]],
+[[3,2],[3,10],[3,11],[4,3],[5,4],[5,19],[5,18],[6,5],[6,16],[9,2],[10,9],[11,9],[12,11],[13,12],[14,13],[16,3],[18,4],[18,3],[19,18],[20,14],[21,20],[22,21],[25,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_satisfied","A",6,0,13],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,13],["Spiral_process","R",7,1,0],["Initial_requirements","A",9,1,2],["Initial_design","C",10,1,3],["Architecture_design","A",11,1,4],["Detailed_design","A",12,1,6],["Coding","A",13,1,7],["Testing","A",14,1,8],["One_iteration","C",16,1,9],["Adjust_requirements","A",18,1,10],["Redesign","C",19,1,11],["Architecture_redesign","A",20,1,12],["Detailed_redesign","A",21,1,14],["Coding","A",22,1,15],["Testing","A",23,1,16],["Delivery_of_the_system","A",26,1,17],["Architect","R",27,2,0],["Developers","R",35,3,0] ],
+
+[[2,1],[2,7],[2,27],[3,1],[3,7],[3,27],[4,1],[4,16],[5,1],[5,16],[5,27],[6,1],[6,7],[9,7],[9,27],[10,7],[11,10],[11,27],[12,10],[12,35],[13,10],[13,35],[14,10],[14,35],[16,7],[18,16],[18,27],[19,16],[20,19],[20,27],[21,19],[21,35],[22,19],[22,35],[23,19],[23,35],[26,7]],
+[[3,2],[3,10],[3,11],[4,3],[5,4],[5,19],[5,20],[6,5],[6,16],[9,2],[10,9],[11,9],[12,11],[13,12],[14,13],[16,3],[18,4],[18,3],[19,18],[20,18],[21,20],[21,14],[22,21],[23,22],[26,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0357143, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_not_satisfied","A",6,0,17],["Stakeholders_are_satisfied","A",8,0,19],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,12],["Prototype_demonstration_to_stakeholders","A",7,1,19],["Spiral_process","R",9,1,0],["Initial_requirements","A",11,1,2],["Initial_design","C",12,1,3],["Architecture_design","A",13,1,4],["Detailed_design","A",14,1,6],["Coding","A",15,1,7],["Testing","A",16,1,8],["One_iteration","C",18,1,9],["Adjust_requirements","A",20,1,10],["Redesign","C",21,1,11],["Detailed_redesign","A",22,1,13],["Coding","A",23,1,14],["Testing","A",24,1,15],["One_iteration","C",26,1,16],["Adjust_requirements","A",28,1,17],["Redesign","C",29,1,18],["Detailed_redesign","A",30,1,20],["Coding","A",31,1,21],["Testing","A",32,1,22],["Delivery_of_the_system","A",35,1,23],["Architect","R",36,2,0],["Developers","R",45,3,0] ],
+
+[[2,1],[2,9],[2,36],[3,1],[3,9],[3,36],[4,1],[4,18],[5,1],[5,18],[5,36],[6,1],[6,26],[7,1],[7,26],[7,36],[8,1],[8,9],[11,9],[11,36],[12,9],[13,12],[13,36],[14,12],[14,45],[15,12],[15,45],[16,12],[16,45],[18,9],[20,18],[20,36],[21,18],[22,21],[22,45],[23,21],[23,45],[24,21],[24,45],[26,9],[28,26],[28,36],[29,26],[30,29],[30,45],[31,29],[31,45],[32,29],[32,45],[35,9]],
+[[3,2],[3,12],[3,13],[4,3],[5,4],[5,21],[5,20],[6,5],[7,6],[7,29],[7,28],[8,7],[8,26],[11,2],[12,11],[13,11],[14,13],[15,14],[16,15],[18,3],[20,4],[20,3],[21,20],[22,16],[23,22],[24,23],[26,18],[28,6],[28,5],[29,28],[30,24],[31,30],[32,31],[35,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0357143, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_not_satisfied","A",6,0,17],["Stakeholders_are_satisfied","A",8,0,20],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,12],["Prototype_demonstration_to_stakeholders","A",7,1,20],["Spiral_process","R",9,1,0],["Initial_requirements","A",11,1,2],["Initial_design","C",12,1,3],["Architecture_design","A",13,1,4],["Detailed_design","A",14,1,6],["Coding","A",15,1,7],["Testing","A",16,1,8],["One_iteration","C",18,1,9],["Adjust_requirements","A",20,1,10],["Redesign","C",21,1,11],["Detailed_redesign","A",22,1,13],["Coding","A",23,1,14],["Testing","A",24,1,15],["One_iteration","C",26,1,16],["Adjust_requirements","A",28,1,17],["Redesign","C",29,1,18],["Architecture_redesign","A",30,1,19],["Detailed_redesign","A",31,1,21],["Coding","A",32,1,22],["Testing","A",33,1,23],["Delivery_of_the_system","A",36,1,24],["Architect","R",37,2,0],["Developers","R",47,3,0] ],
+
+[[2,1],[2,9],[2,37],[3,1],[3,9],[3,37],[4,1],[4,18],[5,1],[5,18],[5,37],[6,1],[6,26],[7,1],[7,26],[7,37],[8,1],[8,9],[11,9],[11,37],[12,9],[13,12],[13,37],[14,12],[14,47],[15,12],[15,47],[16,12],[16,47],[18,9],[20,18],[20,37],[21,18],[22,21],[22,47],[23,21],[23,47],[24,21],[24,47],[26,9],[28,26],[28,37],[29,26],[30,29],[30,37],[31,29],[31,47],[32,29],[32,47],[33,29],[33,47],[36,9]],
+[[3,2],[3,12],[3,13],[4,3],[5,4],[5,21],[5,20],[6,5],[7,6],[7,29],[7,30],[8,7],[8,26],[11,2],[12,11],[13,11],[14,13],[15,14],[16,15],[18,3],[20,4],[20,3],[21,20],[22,16],[23,22],[24,23],[26,18],[28,6],[28,5],[29,28],[30,28],[31,30],[31,24],[32,31],[33,32],[36,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0357143, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_not_satisfied","A",6,0,18],["Stakeholders_are_satisfied","A",8,0,20],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,13],["Prototype_demonstration_to_stakeholders","A",7,1,20],["Spiral_process","R",9,1,0],["Initial_requirements","A",11,1,2],["Initial_design","C",12,1,3],["Architecture_design","A",13,1,4],["Detailed_design","A",14,1,6],["Coding","A",15,1,7],["Testing","A",16,1,8],["One_iteration","C",18,1,9],["Adjust_requirements","A",20,1,10],["Redesign","C",21,1,11],["Architecture_redesign","A",22,1,12],["Detailed_redesign","A",23,1,14],["Coding","A",24,1,15],["Testing","A",25,1,16],["One_iteration","C",27,1,17],["Adjust_requirements","A",29,1,18],["Redesign","C",30,1,19],["Detailed_redesign","A",31,1,21],["Coding","A",32,1,22],["Testing","A",33,1,23],["Delivery_of_the_system","A",36,1,24],["Architect","R",37,2,0],["Developers","R",47,3,0] ],
+
+[[2,1],[2,9],[2,37],[3,1],[3,9],[3,37],[4,1],[4,18],[5,1],[5,18],[5,37],[6,1],[6,27],[7,1],[7,27],[7,37],[8,1],[8,9],[11,9],[11,37],[12,9],[13,12],[13,37],[14,12],[14,47],[15,12],[15,47],[16,12],[16,47],[18,9],[20,18],[20,37],[21,18],[22,21],[22,37],[23,21],[23,47],[24,21],[24,47],[25,21],[25,47],[27,9],[29,27],[29,37],[30,27],[31,30],[31,47],[32,30],[32,47],[33,30],[33,47],[36,9]],
+[[3,2],[3,12],[3,13],[4,3],[5,4],[5,21],[5,22],[6,5],[7,6],[7,30],[7,29],[8,7],[8,27],[11,2],[12,11],[13,11],[14,13],[15,14],[16,15],[18,3],[20,4],[20,3],[21,20],[22,20],[23,22],[23,16],[24,23],[25,24],[27,18],[29,6],[29,5],[30,29],[31,25],[32,31],[33,32],[36,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0357143, 
+[ ["Stakeholders","R",1,0,0],["Stakeholders_are_not_satisfied","A",4,0,10],["Stakeholders_are_not_satisfied","A",6,0,18],["Stakeholders_are_satisfied","A",8,0,21],["Initial_communication_with_stakeholders","A",2,1,1],["Prototype_demonstration_to_stakeholders","A",3,1,5],["Prototype_demonstration_to_stakeholders","A",5,1,13],["Prototype_demonstration_to_stakeholders","A",7,1,21],["Spiral_process","R",9,1,0],["Initial_requirements","A",11,1,2],["Initial_design","C",12,1,3],["Architecture_design","A",13,1,4],["Detailed_design","A",14,1,6],["Coding","A",15,1,7],["Testing","A",16,1,8],["One_iteration","C",18,1,9],["Adjust_requirements","A",20,1,10],["Redesign","C",21,1,11],["Architecture_redesign","A",22,1,12],["Detailed_redesign","A",23,1,14],["Coding","A",24,1,15],["Testing","A",25,1,16],["One_iteration","C",27,1,17],["Adjust_requirements","A",29,1,18],["Redesign","C",30,1,19],["Architecture_redesign","A",31,1,20],["Detailed_redesign","A",32,1,22],["Coding","A",33,1,23],["Testing","A",34,1,24],["Delivery_of_the_system","A",37,1,25],["Architect","R",38,2,0],["Developers","R",49,3,0] ],
+
+[[2,1],[2,9],[2,38],[3,1],[3,9],[3,38],[4,1],[4,18],[5,1],[5,18],[5,38],[6,1],[6,27],[7,1],[7,27],[7,38],[8,1],[8,9],[11,9],[11,38],[12,9],[13,12],[13,38],[14,12],[14,49],[15,12],[15,49],[16,12],[16,49],[18,9],[20,18],[20,38],[21,18],[22,21],[22,38],[23,21],[23,49],[24,21],[24,49],[25,21],[25,49],[27,9],[29,27],[29,38],[30,27],[31,30],[31,38],[32,30],[32,49],[33,30],[33,49],[34,30],[34,49],[37,9]],
+[[3,2],[3,12],[3,13],[4,3],[5,4],[5,21],[5,22],[6,5],[7,6],[7,30],[7,31],[8,7],[8,27],[11,2],[12,11],[13,11],[14,13],[15,14],[16,15],[18,3],[20,4],[20,3],[21,20],[22,20],[23,22],[23,16],[24,23],[25,24],[27,18],[29,6],[29,5],[30,29],[31,29],[32,31],[32,25],[33,32],[34,33],[37,8]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example17_Dining_Philosophers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example17_Dining_Philosophers.json
new file mode 100644
index 0000000..69660a1
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example17_Dining_Philosophers.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Philosophers","R",1,0,0],["Philosopher","C",2,0,1],["think","A",3,0,2],["eat","C",4,0,4],["left_fork","A",5,0,5],["right_fork","A",6,1,5],["Philosopher","C",7,2,1],["think","A",8,2,2],["eat","C",9,2,3],["left_fork","A",10,2,4],["right_fork","A",11,3,4],["Forks","R",12,4,0],["Fork","C",13,4,1],["Fork","C",16,5,1] ],
+
+[[2,1],[3,2],[4,2],[5,4],[5,16],[6,4],[6,13],[7,1],[8,7],[9,7],[10,9],[10,13],[11,9],[11,16],[13,12],[16,12]],
+[[4,3],[4,9],[5,11],[6,10],[9,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Philosophers","R",1,0,0],["Philosopher","C",2,0,1],["think","A",3,0,2],["eat","C",4,0,3],["left_fork","A",5,0,4],["right_fork","A",6,1,4],["Philosopher","C",7,2,1],["think","A",8,2,2],["eat","C",9,2,4],["left_fork","A",10,2,5],["right_fork","A",11,3,5],["Forks","R",12,4,0],["Fork","C",13,4,1],["Fork","C",16,5,1] ],
+
+[[2,1],[3,2],[4,2],[5,4],[5,16],[6,4],[6,13],[7,1],[8,7],[9,7],[10,9],[10,13],[11,9],[11,16],[13,12],[16,12]],
+[[4,3],[9,8],[9,4],[10,6],[11,5]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example18_Workflow_pattern.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example18_Workflow_pattern.json
new file mode 100644
index 0000000..5b4c632
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example18_Workflow_pattern.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Phase1","R",1,0,0],["check_breathing","A",2,0,1],["check_pulse","A",3,1,1],["finish_first","A",4,1,2],["Triage","R",5,2,0],["identify_the_patient","A",6,2,2],["record_assessment_findings","A",7,2,3],["identify_the_priority","A",8,2,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5]],
+[[4,3],[6,4],[7,6],[8,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Phase1","R",1,0,0],["check_breathing","A",2,0,1],["finish_first","A",3,0,2],["check_pulse","A",4,1,1],["Triage","R",5,2,0],["identify_the_patient","A",6,2,3],["record_assessment_findings","A",7,2,4],["identify_the_priority","A",8,2,5] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5]],
+[[3,2],[6,3],[7,6],[8,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example19_Consumers_Suppliers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example19_Consumers_Suppliers.json
new file mode 100644
index 0000000..01ddf93
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example19_Consumers_Suppliers.json
@@ -0,0 +1,1083 @@
+{"traces":[
+
+["U", 0.161616, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Sell","A",9,2,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[8,7],[9,8]],
+[[4,3],[4,9],[6,3],[9,6]],
+["Is_supplier_for", [8,2]],
+["related_to", [3,6],[6,9],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Producer","C",9,3,1],["Sell","A",10,3,3] ],
+
+[[2,1],[3,2],[4,2],[6,5],[8,7],[9,7],[10,9]],
+[[4,3],[4,10],[6,3],[10,6]],
+["Is_supplier_for", [9,2]],
+["related_to", [3,6],[6,10],[10,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Sell","A",9,2,2],["Producer","C",10,3,1] ],
+
+[[2,1],[3,2],[4,2],[6,5],[8,7],[9,8],[10,7]],
+[[4,3],[4,9],[6,3],[9,6]],
+["Is_supplier_for", [8,2]],
+["related_to", [3,6],[6,9],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.161616, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1] ],
+
+[[2,1],[3,2],[4,2],[4,8],[6,5],[8,7]],
+[[4,3],[4,6],[6,3]],
+["related_to", [3,6],[6,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Producer","C",9,3,1] ],
+
+[[2,1],[3,2],[4,2],[4,9],[6,5],[8,7],[9,7]],
+[[4,3],[4,6],[6,3]],
+["related_to", [3,6],[6,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,3],["Supply_Office","R",5,1,0],["Receive_order_and_buy","A",6,1,2],["Producers","R",7,2,0],["Producer","C",8,2,1],["Producer","C",10,3,1] ],
+
+[[2,1],[3,2],[4,2],[4,8],[6,5],[8,7],[10,7]],
+[[4,3],[4,6],[6,3]],
+["related_to", [3,6],[6,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Receive_supply","A",5,1,3],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1],["Sell","A",10,3,2] ],
+
+[[2,1],[3,1],[4,3],[5,3],[7,6],[9,8],[10,9]],
+[[5,4],[5,10],[7,4],[10,7]],
+["Is_supplier_for", [9,3]],
+["related_to", [4,7],[7,10],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Receive_supply","A",5,1,4],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",10,4,1],["Sell","A",11,4,3] ],
+
+[[2,1],[3,1],[4,3],[5,3],[7,6],[9,8],[10,8],[11,10]],
+[[5,4],[5,11],[7,4],[11,7]],
+["Is_supplier_for", [10,3]],
+["related_to", [4,7],[7,11],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Receive_supply","A",5,1,3],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1],["Sell","A",10,3,2],["Producer","C",11,4,1] ],
+
+[[2,1],[3,1],[4,3],[5,3],[7,6],[9,8],[10,9],[11,8]],
+[[5,4],[5,10],[7,4],[10,7]],
+["Is_supplier_for", [9,3]],
+["related_to", [4,7],[7,10],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Not_available","A",5,1,3],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1] ],
+
+[[2,1],[3,1],[4,3],[5,3],[5,9],[7,6],[9,8]],
+[[5,4],[5,7],[7,4]],
+["related_to", [4,7],[7,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Not_available","A",5,1,3],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",10,4,1] ],
+
+[[2,1],[3,1],[4,3],[5,3],[5,10],[7,6],[9,8],[10,8]],
+[[5,4],[5,7],[7,4]],
+["related_to", [4,7],[7,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Consumer","C",3,1,1],["Request_delivery","A",4,1,2],["Not_available","A",5,1,3],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,2],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",11,4,1] ],
+
+[[2,1],[3,1],[4,3],[5,3],[5,9],[7,6],[9,8],[11,8]],
+[[5,4],[5,7],[7,4]],
+["related_to", [4,7],[7,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1],["Sell","A",10,3,3] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[9,8],[10,9]],
+[[4,3],[4,10],[7,3],[10,7]],
+["Is_supplier_for", [9,2]],
+["related_to", [3,7],[7,10],[10,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",10,4,1],["Sell","A",11,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[9,8],[10,8],[11,10]],
+[[4,3],[4,11],[7,3],[11,7]],
+["Is_supplier_for", [10,2]],
+["related_to", [3,7],[7,11],[11,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1],["Sell","A",10,3,3],["Producer","C",11,4,1] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[9,8],[10,9],[11,8]],
+[[4,3],[4,10],[7,3],[10,7]],
+["Is_supplier_for", [9,2]],
+["related_to", [3,7],[7,10],[10,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,4],["Request_delivery","A",8,1,5],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,5],["Producer","C",17,4,1],["Sell","A",18,4,3],["Sell","A",19,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,19],[7,6],[7,18],[8,7],[9,8],[9,16],[11,6],[12,11],[12,3],[13,12],[13,8],[16,13],[18,11],[19,18],[19,12]],
+["Is_supplier_for", [15,5],[17,2],[17,5]],
+["related_to", [3,12],[6,11],[8,13],[11,18],[12,19],[13,16],[16,9],[18,7],[19,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,3],["Request_delivery","A",8,1,4],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,4],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,2],["Not_available","A",17,3,4],["Producer","C",18,4,1],["Not_available","A",19,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[7,6],[8,7],[9,8],[11,6],[12,11],[12,3],[13,12],[13,8],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,12],[6,11],[8,13],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,3],["Request_delivery","A",8,1,4],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,2],["Not_available","A",17,3,5],["Producer","C",18,4,1],["Not_available","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[7,6],[8,7],[9,8],[11,6],[12,11],[12,8],[13,12],[13,3],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,13],[6,11],[8,12],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,3],["Request_delivery","A",8,1,4],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,4],["Receive_order_and_buy","A",12,2,5],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,4],["Not_available","A",17,3,6],["Producer","C",18,4,1],["Not_available","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[7,6],[8,7],[9,8],[11,8],[12,11],[12,3],[13,12],[13,6],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,12],[6,13],[8,11],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,3],["Request_delivery","A",8,1,4],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,4],["Receive_order_and_buy","A",12,2,5],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,4],["Not_available","A",17,3,6],["Producer","C",18,4,1],["Not_available","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[7,6],[8,7],[9,8],[11,8],[12,11],[12,6],[13,12],[13,3],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,13],[6,12],[8,11],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,9],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,5],["Request_delivery","A",8,1,6],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Producer","C",17,4,1],["Sell","A",18,4,7],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,19],[7,6],[7,16],[8,7],[9,8],[9,18],[11,3],[12,11],[12,6],[13,12],[13,8],[16,12],[18,13],[19,18],[19,11]],
+["Is_supplier_for", [15,5],[17,2],[17,5]],
+["related_to", [3,11],[6,12],[8,13],[11,19],[12,16],[13,18],[16,7],[18,9],[19,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,7],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,6],["Request_delivery","A",8,1,7],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,7],["Producer","C",17,4,1],["Sell","A",18,4,5],["Sell","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,19],[7,6],[7,18],[8,7],[9,8],[9,16],[11,3],[12,11],[12,6],[13,12],[13,8],[16,13],[18,12],[19,18],[19,11]],
+["Is_supplier_for", [15,5],[17,2],[17,5]],
+["related_to", [3,11],[6,12],[8,13],[11,19],[12,18],[13,16],[16,9],[18,7],[19,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,3],["Request_delivery","A",8,1,4],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,3],["Not_available","A",17,3,5],["Producer","C",18,4,1],["Not_available","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[7,6],[8,7],[9,8],[11,3],[12,11],[12,6],[13,12],[13,8],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,11],[6,12],[8,13],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.053872, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,1],[7,6],[9,8]],
+[[4,3],[4,7],[7,3]],
+["related_to", [3,7],[7,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",10,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,10],[5,1],[7,6],[9,8],[10,8]],
+[[4,3],[4,7],[7,3]],
+["related_to", [3,7],[7,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0179573, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Supply_Office","R",6,2,0],["Receive_order_and_buy","A",7,2,3],["Producers","R",8,3,0],["Producer","C",9,3,1],["Producer","C",11,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,1],[7,6],[9,8],[11,8]],
+[[4,3],[4,7],[7,3]],
+["related_to", [3,7],[7,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,4],["Request_delivery","A",8,1,5],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,5],["Producer","C",17,4,1],["Sell","A",18,4,3] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[4,12],[7,6],[7,18],[8,7],[9,8],[9,16],[11,6],[12,11],[12,3],[13,12],[13,8],[16,13],[18,11]],
+["Is_supplier_for", [15,5],[17,5]],
+["related_to", [3,12],[6,11],[8,13],[11,18],[12,4],[13,16],[16,9],[18,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,7],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,4],["Request_delivery","A",8,1,5],["Receive_supply","A",9,1,7],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,5],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,3],["Sell","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,13],[7,6],[7,18],[8,7],[9,8],[9,19],[11,6],[12,11],[12,8],[13,12],[13,3],[18,11],[19,18],[19,12]],
+["Is_supplier_for", [17,5]],
+["related_to", [3,13],[6,11],[8,12],[11,18],[12,19],[13,4],[18,7],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,5],["Request_delivery","A",8,1,6],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Producer","C",17,4,1],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[7,6],[7,16],[8,7],[9,8],[9,19],[11,3],[12,11],[12,6],[13,12],[13,8],[16,12],[19,13],[19,4]],
+["Is_supplier_for", [15,5],[17,5]],
+["related_to", [3,11],[6,12],[8,13],[11,4],[12,16],[13,19],[16,7],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,6],["Request_delivery","A",8,1,7],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,7],["Producer","C",17,4,1],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[7,6],[7,19],[8,7],[9,8],[9,16],[11,3],[12,11],[12,6],[13,12],[13,8],[16,13],[19,12],[19,4]],
+["Is_supplier_for", [15,5],[17,5]],
+["related_to", [3,11],[6,12],[8,13],[11,4],[12,19],[13,16],[16,9],[19,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Consumer","C",5,1,1],["Request_delivery","A",6,1,2],["Receive_supply","A",7,1,5],["Request_delivery","A",8,1,6],["Receive_supply","A",9,1,7],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Sell","A",17,3,6],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,11],[7,6],[7,16],[8,7],[9,8],[9,17],[11,3],[12,11],[12,6],[13,12],[13,8],[16,12],[17,16],[17,13]],
+["Is_supplier_for", [15,5]],
+["related_to", [3,11],[6,12],[8,13],[11,4],[12,16],[13,17],[16,7],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.013468, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Supply_Office","R",8,2,0],["Receive_order_and_buy","A",9,2,3],["Receive_order_and_buy","A",10,2,6],["Producers","R",11,3,0],["Producer","C",12,3,1],["Sell","A",13,3,3],["Sell","A",14,3,6] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[9,8],[10,8],[12,11],[13,12],[14,12]],
+[[4,3],[4,13],[5,4],[6,5],[6,14],[9,3],[10,9],[10,5],[13,9],[14,13],[14,10]],
+["Is_supplier_for", [12,2]],
+["related_to", [3,9],[5,10],[9,13],[10,14],[13,4],[14,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00448934, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Supply_Office","R",8,2,0],["Receive_order_and_buy","A",9,2,3],["Receive_order_and_buy","A",10,2,7],["Producers","R",11,3,0],["Producer","C",12,3,1],["Producer","C",13,4,1],["Sell","A",14,4,4],["Sell","A",15,4,8] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[9,8],[10,8],[12,11],[13,11],[14,13],[15,13]],
+[[4,3],[4,14],[5,4],[6,5],[6,15],[9,3],[10,9],[10,5],[14,9],[15,14],[15,10]],
+["Is_supplier_for", [13,2]],
+["related_to", [3,9],[5,10],[9,14],[10,15],[14,4],[15,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00448934, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Supply_Office","R",8,2,0],["Receive_order_and_buy","A",9,2,3],["Receive_order_and_buy","A",10,2,7],["Producers","R",11,3,0],["Producer","C",12,3,1],["Sell","A",13,3,7],["Producer","C",14,4,1],["Sell","A",15,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[9,8],[10,8],[12,11],[13,12],[14,11],[15,14]],
+[[4,3],[4,15],[5,4],[6,5],[6,13],[9,3],[10,9],[10,5],[13,10],[15,9]],
+["Is_supplier_for", [12,2],[14,2]],
+["related_to", [3,9],[5,10],[9,15],[10,13],[13,6],[15,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00448934, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Supply_Office","R",8,2,0],["Receive_order_and_buy","A",9,2,3],["Receive_order_and_buy","A",10,2,5],["Producers","R",11,3,0],["Producer","C",12,3,1],["Not_available","A",13,3,5],["Not_available","A",14,3,6],["Producer","C",15,4,1] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[9,8],[10,8],[12,11],[13,12],[14,12],[15,11]],
+[[4,3],[5,4],[6,5],[9,3],[10,9],[10,5],[13,10],[14,13],[14,9]],
+["related_to", [3,9],[5,10],[9,14],[10,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,7],["Request_delivery","A",5,0,8],["Receive_supply","A",6,0,10],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,9],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,9],["Producer","C",17,4,1],["Sell","A",18,4,5],["Sell","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,19],[5,4],[6,5],[6,16],[9,8],[9,18],[11,3],[12,11],[12,8],[13,12],[13,5],[16,13],[18,12],[19,18],[19,11]],
+["Is_supplier_for", [15,2],[17,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,19],[12,18],[13,16],[16,6],[18,9],[19,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Producer","C",17,4,1],["Sell","A",18,4,5],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,16],[5,4],[6,5],[6,19],[9,8],[9,18],[11,3],[12,11],[12,8],[13,12],[13,5],[16,11],[18,12],[19,18],[19,13]],
+["Is_supplier_for", [15,2],[17,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,16],[12,18],[13,19],[16,4],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,3],["Not_available","A",17,3,5],["Producer","C",18,4,1],["Not_available","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[5,4],[6,5],[9,8],[11,3],[12,11],[12,8],[13,12],[13,5],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,11],[5,13],[8,12],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,5],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,5],["Not_available","A",17,3,7],["Producer","C",18,4,1],["Not_available","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[5,4],[6,5],[9,8],[11,5],[12,11],[12,3],[13,12],[13,8],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,12],[5,11],[8,13],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,5],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,5],["Not_available","A",17,3,7],["Producer","C",18,4,1],["Not_available","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[5,4],[6,5],[9,8],[11,5],[12,11],[12,8],[13,12],[13,3],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,13],[5,11],[8,12],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,4],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Producer","C",17,4,1],["Sell","A",18,4,3],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,16],[5,4],[6,5],[6,19],[9,8],[9,18],[11,8],[12,11],[12,3],[13,12],[13,5],[16,12],[18,11],[19,18],[19,13]],
+["Is_supplier_for", [15,2],[17,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,18],[12,16],[13,19],[16,4],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,5],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,2],["Not_available","A",17,3,5],["Producer","C",18,4,1],["Not_available","A",19,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[5,4],[6,5],[9,8],[11,8],[12,11],[12,3],[13,12],[13,5],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,12],[5,13],[8,11],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,10],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Producer","C",17,4,1],["Sell","A",18,4,8],["Sell","A",19,4,9] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,16],[5,4],[6,5],[6,19],[9,8],[9,18],[11,3],[12,11],[12,5],[13,12],[13,8],[16,11],[18,13],[19,18],[19,12]],
+["Is_supplier_for", [15,2],[17,2],[17,7]],
+["related_to", [3,11],[5,12],[8,13],[11,16],[12,19],[13,18],[16,4],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,7],["Receive_order_and_buy","A",13,2,8],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,8],["Producer","C",17,4,1],["Sell","A",18,4,4],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17],[19,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,19],[9,8],[9,16],[11,3],[12,11],[12,5],[13,12],[13,8],[16,13],[18,11],[19,18],[19,12]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,11],[5,12],[8,13],[11,18],[12,19],[13,16],[16,9],[18,4],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,3],["Request_delivery","A",5,0,4],["Receive_supply","A",6,0,5],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,5],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Not_available","A",16,3,3],["Not_available","A",17,3,6],["Producer","C",18,4,1],["Not_available","A",19,4,6] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14],[19,18]],
+[[4,3],[5,4],[6,5],[9,8],[11,3],[12,11],[12,5],[13,12],[13,8],[16,11],[17,16],[17,13],[19,12]],
+["related_to", [3,11],[5,12],[8,13],[11,16],[12,19],[13,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Producer","C",17,4,1],["Sell","A",18,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,17],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,18],[6,13],[9,8],[9,16],[11,3],[12,11],[12,8],[13,12],[13,5],[16,12],[18,11]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,11],[5,13],[8,12],[11,18],[12,16],[13,6],[16,9],[18,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Producer","C",17,4,1],["Sell","A",18,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,17],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,16],[5,4],[6,5],[6,18],[6,13],[9,8],[9,18],[11,3],[12,11],[12,8],[13,12],[13,5],[16,11],[18,12]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,16],[12,18],[13,6],[16,4],[18,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,4],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,13],[9,8],[9,19],[11,3],[12,11],[12,8],[13,12],[13,5],[18,11],[19,18],[19,12]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,18],[12,19],[13,6],[18,4],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,8],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Sell","A",17,3,5],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,17],[5,4],[6,5],[6,13],[9,8],[9,16],[11,3],[12,11],[12,8],[13,12],[13,5],[16,12],[17,16],[17,11]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,13],[8,12],[11,17],[12,16],[13,6],[16,9],[17,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Sell","A",17,3,4],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,16],[5,4],[6,5],[6,13],[9,8],[9,17],[11,3],[12,11],[12,8],[13,12],[13,5],[16,11],[17,16],[17,12]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,13],[8,12],[11,16],[12,17],[13,6],[16,4],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,4],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Producer","C",17,4,1],["Sell","A",18,4,3] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,17],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,16],[5,4],[6,5],[6,18],[6,13],[9,8],[9,18],[11,8],[12,11],[12,3],[13,12],[13,5],[16,12],[18,11]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,18],[12,16],[13,6],[16,4],[18,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,2],["Producer","C",17,4,1],["Sell","A",18,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,17],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,18],[6,13],[9,8],[9,16],[11,8],[12,11],[12,3],[13,12],[13,5],[16,11],[18,12]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,12],[5,13],[8,11],[11,16],[12,18],[13,6],[16,9],[18,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,4],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,13],[9,8],[9,19],[11,8],[12,11],[12,3],[13,12],[13,5],[18,12],[19,18],[19,11]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,19],[12,18],[13,6],[18,4],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,3],["Sell","A",17,3,4],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,16],[5,4],[6,5],[6,13],[9,8],[9,17],[11,8],[12,11],[12,3],[13,12],[13,5],[16,12],[17,16],[17,11]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,12],[5,13],[8,11],[11,17],[12,16],[13,6],[16,4],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,7],["Receive_order_and_buy","A",13,2,8],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,8],["Producer","C",17,4,1],["Sell","A",18,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,17],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[5,4],[6,5],[6,18],[6,12],[9,8],[9,16],[11,3],[12,11],[12,5],[13,12],[13,8],[16,13],[18,11]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,11],[5,12],[8,13],[11,18],[12,6],[13,16],[16,9],[18,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,3],["Sell","A",20,3,7],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,19],[5,4],[6,5],[6,22],[6,16],[9,8],[9,22],[10,9],[11,10],[11,20],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,13],[20,19],[20,15],[22,14]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,19],[14,22],[15,20],[16,6],[19,4],[20,11],[22,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Request_delivery","A",10,1,6],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,3],["Sell","A",20,3,4],["Producer","C",21,4,1],["Sell","A",22,4,7] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,19],[5,4],[6,5],[6,22],[6,16],[9,8],[9,20],[10,9],[11,10],[11,22],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,13],[20,19],[20,14],[22,15]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,19],[14,20],[15,22],[16,6],[19,4],[20,9],[22,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Request_delivery","A",10,1,6],["Receive_supply","A",11,1,11],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,4],["Sell","A",20,3,5],["Producer","C",21,4,1],["Sell","A",23,4,10] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,20],[5,4],[6,5],[6,16],[9,8],[9,19],[10,9],[11,10],[11,23],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,14],[20,19],[20,13],[23,15],[23,6]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,20],[14,19],[15,23],[16,6],[19,9],[20,4],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,9],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",22,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,22],[5,4],[6,5],[6,22],[6,15],[9,8],[9,19],[10,9],[11,10],[11,20],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[19,13],[20,19],[20,16],[22,14]],
+["Is_supplier_for", [18,7],[21,2]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,19],[14,22],[15,6],[16,20],[19,9],[20,11],[22,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Request_delivery","A",10,1,10],["Receive_supply","A",11,1,11],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,10],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,3],["Sell","A",20,3,10],["Producer","C",21,4,1],["Sell","A",23,4,8] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,19],[5,4],[6,5],[6,15],[9,8],[9,23],[10,9],[11,10],[11,20],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[19,14],[20,19],[20,16],[23,13],[23,6]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,23],[14,19],[15,6],[16,20],[19,4],[20,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,5],["Request_delivery","A",5,0,6],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,5],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,4],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,4],["Producer","C",21,4,1],["Sell","A",22,4,4] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,22],[5,4],[6,5],[6,22],[6,16],[9,8],[9,19],[10,9],[11,10],[11,20],[13,8],[14,13],[14,3],[15,14],[15,10],[16,15],[16,5],[19,13],[20,19],[20,15],[22,14]],
+["Is_supplier_for", [18,7],[21,2]],
+["related_to", [3,14],[5,16],[8,13],[10,15],[13,19],[14,22],[15,20],[16,6],[19,9],[20,11],[22,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Receive_supply","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,6],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,5],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,5],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,21],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,20],[5,4],[6,5],[6,22],[6,16],[9,8],[9,19],[10,9],[11,10],[11,22],[13,8],[14,13],[14,10],[15,14],[15,3],[16,15],[16,5],[19,13],[20,19],[20,15],[22,14]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,15],[5,16],[8,13],[10,14],[13,19],[14,22],[15,20],[16,6],[19,9],[20,4],[22,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,8],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,8],["Producer","C",17,4,1],["Sell","A",18,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[4,11],[5,4],[6,5],[6,16],[9,8],[9,18],[11,3],[12,11],[12,8],[13,12],[13,5],[16,13],[18,12]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,18],[13,16],[16,6],[18,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Producer","C",17,4,1],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,19],[9,8],[9,16],[11,3],[12,11],[12,8],[13,12],[13,5],[16,12],[19,13],[19,4]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,16],[13,19],[16,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Producer","C",17,4,1],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,16],[9,8],[9,19],[11,3],[12,11],[12,8],[13,12],[13,5],[16,13],[19,12],[19,4]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,19],[13,16],[16,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,7],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,18],[9,8],[9,19],[11,3],[12,11],[12,8],[13,12],[13,5],[18,13],[19,18],[19,12]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,19],[13,18],[18,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,5],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,19],[9,8],[9,18],[11,3],[12,11],[12,8],[13,12],[13,5],[18,12],[19,18],[19,13]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,18],[13,19],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,4],["Sell","A",17,3,6],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,17],[9,8],[9,16],[11,3],[12,11],[12,8],[13,12],[13,5],[16,12],[17,16],[17,13]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,16],[13,17],[16,9],[17,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Sell","A",17,3,7],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,16],[9,8],[9,17],[11,3],[12,11],[12,8],[13,12],[13,5],[16,13],[17,16],[17,12]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,17],[13,16],[16,6],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,4],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Producer","C",17,4,1],["Sell","A",18,4,3] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[18,17]],
+[[4,3],[4,18],[4,12],[5,4],[6,5],[6,16],[9,8],[9,18],[11,8],[12,11],[12,3],[13,12],[13,5],[16,13],[18,11]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,18],[12,4],[13,16],[16,6],[18,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Producer","C",17,4,1],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,12],[5,4],[6,5],[6,16],[9,8],[9,19],[11,8],[12,11],[12,3],[13,12],[13,5],[16,13],[19,11],[19,4]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,19],[12,4],[13,16],[16,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,2],["Producer","C",17,4,1],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,12],[5,4],[6,5],[6,19],[9,8],[9,16],[11,8],[12,11],[12,3],[13,12],[13,5],[16,11],[19,13],[19,4]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,12],[5,13],[8,11],[11,16],[12,4],[13,19],[16,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,4],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,3],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,12],[5,4],[6,5],[6,19],[9,8],[9,18],[11,8],[12,11],[12,3],[13,12],[13,5],[18,11],[19,18],[19,13]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,18],[12,4],[13,19],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,7],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,12],[5,4],[6,5],[6,18],[9,8],[9,19],[11,8],[12,11],[12,3],[13,12],[13,5],[18,13],[19,18],[19,11]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,19],[12,4],[13,18],[18,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,2],["Sell","A",17,3,6],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,12],[5,4],[6,5],[6,17],[9,8],[9,16],[11,8],[12,11],[12,3],[13,12],[13,5],[16,11],[17,16],[17,13]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,12],[5,13],[8,11],[11,16],[12,4],[13,17],[16,9],[17,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Sell","A",17,3,7],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,12],[5,4],[6,5],[6,16],[9,8],[9,17],[11,8],[12,11],[12,3],[13,12],[13,5],[16,13],[17,16],[17,11]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,12],[5,13],[8,11],[11,17],[12,4],[13,16],[16,6],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Producer","C",17,4,1],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,16],[9,8],[9,19],[11,3],[12,11],[12,5],[13,12],[13,8],[16,12],[19,13],[19,4]],
+["Is_supplier_for", [15,2],[17,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,16],[13,19],[16,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,7],["Producer","C",17,4,1],["Sell","A",19,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,19],[9,8],[9,16],[11,3],[12,11],[12,5],[13,12],[13,8],[16,13],[19,12],[19,4]],
+["Is_supplier_for", [15,7],[17,2]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,19],[13,16],[16,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,10],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,8],["Sell","A",19,4,9] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,19],[9,8],[9,18],[11,3],[12,11],[12,5],[13,12],[13,8],[18,13],[19,18],[19,12]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,19],[13,18],[18,9],[19,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,7],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,15],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,18],[9,8],[9,19],[11,3],[12,11],[12,5],[13,12],[13,8],[18,12],[19,18],[19,13]],
+["Is_supplier_for", [17,2],[17,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,18],[13,19],[18,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,6],["Sell","A",17,3,7],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,16],[9,8],[9,17],[11,3],[12,11],[12,5],[13,12],[13,8],[16,12],[17,16],[17,13]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,16],[13,17],[16,6],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,7],["Sell","A",17,3,8],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[17,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,17],[9,8],[9,16],[11,3],[12,11],[12,5],[13,12],[13,8],[16,13],[17,16],[17,12]],
+["Is_supplier_for", [15,2],[15,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,17],[13,16],[16,9],[17,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Request_delivery","A",10,1,9],["Receive_supply","A",11,1,11],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,9],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,6],["Sell","A",20,3,7],["Producer","C",21,4,1],["Sell","A",23,4,10] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,19],[9,8],[9,20],[10,9],[11,10],[11,23],[13,3],[14,13],[14,8],[15,14],[15,5],[16,15],[16,10],[19,15],[20,19],[20,14],[23,16],[23,4]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,13],[5,15],[8,14],[10,16],[13,4],[14,20],[15,19],[16,23],[19,6],[20,9],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,13],[5,4],[6,5],[6,20],[9,8],[9,22],[10,9],[11,10],[11,19],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,15],[20,19],[20,16],[22,14]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,22],[15,19],[16,20],[19,11],[20,6],[22,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Request_delivery","A",10,1,6],["Receive_supply","A",11,1,7],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,4],["Sell","A",20,3,6],["Producer","C",21,4,1],["Sell","A",23,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,23],[9,8],[9,19],[10,9],[11,10],[11,20],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,14],[20,19],[20,15],[23,16],[23,4]],
+["Is_supplier_for", [18,7],[21,2]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,19],[15,20],[16,23],[19,9],[20,11],[23,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,9],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,6],["Producer","C",21,4,1],["Sell","A",23,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,20],[9,8],[9,19],[10,9],[11,10],[11,23],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[19,13],[20,19],[20,15],[23,16],[23,4]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,19],[14,4],[15,20],[16,23],[19,9],[20,6],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,6],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,4],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,14],[5,4],[6,5],[6,20],[9,8],[9,19],[10,9],[11,10],[11,22],[13,8],[14,13],[14,3],[15,14],[15,10],[16,15],[16,5],[19,13],[20,19],[20,16],[22,15]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,14],[5,16],[8,13],[10,15],[13,19],[14,4],[15,22],[16,20],[19,9],[20,6],[22,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,6],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,4],["Receive_order_and_buy","A",16,2,6],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,6],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,20],[9,8],[9,19],[10,9],[11,10],[11,23],[13,8],[14,13],[14,3],[15,14],[15,10],[16,15],[16,5],[19,13],[20,19],[20,16],[23,15],[23,4]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,14],[5,16],[8,13],[10,15],[13,19],[14,4],[15,23],[16,20],[19,9],[20,6],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Receive_supply","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,6],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,5],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,15],[5,4],[6,5],[6,20],[9,8],[9,19],[10,9],[11,10],[11,22],[13,8],[14,13],[14,10],[15,14],[15,3],[16,15],[16,5],[19,13],[20,19],[20,16],[22,14]],
+["Is_supplier_for", [18,2],[18,7],[21,7]],
+["related_to", [3,15],[5,16],[8,13],[10,14],[13,19],[14,22],[15,4],[16,20],[19,9],[20,6],[22,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Receive_supply","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Request_delivery","A",10,1,9],["Receive_supply","A",11,1,10],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,6],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,9],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Sell","A",20,3,9],["Producer","C",21,4,1],["Sell","A",23,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[20,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,23],[9,8],[9,19],[10,9],[11,10],[11,20],[13,3],[14,13],[14,5],[15,14],[15,8],[16,15],[16,10],[19,15],[20,19],[20,16],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,2]],
+["related_to", [3,13],[5,14],[8,15],[10,16],[13,4],[14,23],[15,19],[16,20],[19,9],[20,11],[23,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",19,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,13],[9,8],[9,19],[11,3],[12,11],[12,8],[13,12],[13,5],[19,12],[19,4]],
+["Is_supplier_for", [17,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,19],[13,6],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,4],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",17,3,8],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,13],[9,8],[9,17],[11,3],[12,11],[12,8],[13,12],[13,5],[17,12],[17,6]],
+["Is_supplier_for", [15,7]],
+["related_to", [3,11],[5,13],[8,12],[11,4],[12,17],[13,6],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,4],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",18,4,3] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[18,17]],
+[[4,3],[4,18],[4,12],[5,4],[6,5],[6,13],[9,8],[9,18],[11,8],[12,11],[12,3],[13,12],[13,5],[18,11]],
+["Is_supplier_for", [17,7]],
+["related_to", [3,12],[5,13],[8,11],[11,18],[12,4],[13,6],[18,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,2],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[18,14]],
+[[4,3],[4,12],[5,4],[6,5],[6,16],[6,13],[9,8],[9,16],[11,8],[12,11],[12,3],[13,12],[13,5],[16,11]],
+["Is_supplier_for", [15,7]],
+["related_to", [3,12],[5,13],[8,11],[11,16],[12,4],[13,6],[16,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,2],["Receive_order_and_buy","A",12,2,3],["Receive_order_and_buy","A",13,2,6],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",17,3,8],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,15],[18,14]],
+[[4,3],[4,12],[5,4],[6,5],[6,13],[9,8],[9,17],[11,8],[12,11],[12,3],[13,12],[13,5],[17,11],[17,6]],
+["Is_supplier_for", [15,7]],
+["related_to", [3,12],[5,13],[8,11],[11,17],[12,4],[13,6],[17,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,9],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Producer","C",17,4,1],["Sell","A",19,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,17],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[17,14],[19,17]],
+[[4,3],[4,11],[5,4],[6,5],[6,12],[9,8],[9,19],[11,3],[12,11],[12,5],[13,12],[13,8],[19,13],[19,4]],
+["Is_supplier_for", [17,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,6],[13,19],[19,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00112233, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,8],["Supply_Office","R",10,2,0],["Receive_order_and_buy","A",11,2,3],["Receive_order_and_buy","A",12,2,6],["Receive_order_and_buy","A",13,2,7],["Producers","R",14,3,0],["Producer","C",15,3,1],["Sell","A",16,3,7],["Producer","C",18,4,1] ],
+
+[[2,1],[3,2],[4,2],[4,18],[5,2],[6,2],[6,15],[7,1],[8,7],[9,7],[11,10],[12,10],[13,10],[15,14],[16,15],[18,14]],
+[[4,3],[4,11],[5,4],[6,5],[6,16],[6,12],[9,8],[9,16],[11,3],[12,11],[12,5],[13,12],[13,8],[16,13]],
+["Is_supplier_for", [15,7]],
+["related_to", [3,11],[5,12],[8,13],[11,4],[12,6],[13,16],[16,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,10],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,10],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,8],["Receive_order_and_buy","A",16,2,9],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,9],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,13],[5,4],[6,5],[6,19],[6,15],[9,8],[9,22],[10,9],[11,10],[11,19],[13,3],[14,13],[14,8],[15,14],[15,5],[16,15],[16,10],[19,16],[22,14]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,15],[8,14],[10,16],[13,4],[14,22],[15,6],[16,19],[19,11],[22,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,19],[6,15],[9,8],[9,23],[10,9],[11,10],[11,19],[13,3],[14,13],[14,8],[15,14],[15,5],[16,15],[16,10],[19,16],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,15],[8,14],[10,16],[13,4],[14,23],[15,6],[16,19],[19,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,9],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[20,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,15],[9,8],[9,23],[10,9],[11,10],[11,20],[13,3],[14,13],[14,8],[15,14],[15,5],[16,15],[16,10],[20,16],[20,6],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,15],[8,14],[10,16],[13,4],[14,23],[15,6],[16,20],[20,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,8],["Request_delivery","A",5,0,9],["Not_available","A",6,0,11],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,5],["Request_delivery","A",10,1,6],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,10],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,4],["Producer","C",21,4,1],["Sell","A",22,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,13],[5,4],[6,5],[6,19],[6,16],[9,8],[9,19],[10,9],[11,10],[11,22],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,14],[22,15]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,19],[15,22],[16,6],[19,9],[22,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Producer","C",21,4,1],["Sell","A",22,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[22,21]],
+[[4,3],[4,22],[4,13],[5,4],[6,5],[6,19],[6,16],[9,8],[9,22],[10,9],[11,10],[11,19],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,15],[22,14]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,22],[15,19],[16,6],[19,11],[22,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,19],[6,16],[9,8],[9,23],[10,9],[11,10],[11,19],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[19,15],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,23],[15,19],[16,6],[19,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,11],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,3],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",20,3,10],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[20,18],[21,17],[23,21]],
+[[4,3],[4,13],[5,4],[6,5],[6,16],[9,8],[9,23],[10,9],[11,10],[11,20],[13,3],[14,13],[14,8],[15,14],[15,10],[16,15],[16,5],[20,15],[20,6],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,13],[5,16],[8,14],[10,15],[13,4],[14,23],[15,20],[16,6],[20,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,9],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Producer","C",21,4,1],["Sell","A",23,4,8] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,19],[6,15],[9,8],[9,19],[10,9],[11,10],[11,23],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[19,13],[23,16],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,19],[14,4],[15,6],[16,23],[19,9],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,8],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,19],[6,15],[9,8],[9,23],[10,9],[11,10],[11,19],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[19,16],[23,13],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,23],[14,4],[15,6],[16,19],[19,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,9],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,6],["Receive_order_and_buy","A",16,2,7],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",20,3,8],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[20,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,15],[9,8],[9,23],[10,9],[11,10],[11,20],[13,8],[14,13],[14,3],[15,14],[15,5],[16,15],[16,10],[20,16],[20,6],[23,13],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,14],[5,15],[8,13],[10,16],[13,23],[14,4],[15,6],[16,20],[20,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,7],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,6],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,4],["Receive_order_and_buy","A",16,2,6],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,19],[6,16],[9,8],[9,19],[10,9],[11,10],[11,23],[13,8],[14,13],[14,3],[15,14],[15,10],[16,15],[16,5],[19,13],[23,15],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,14],[5,16],[8,13],[10,15],[13,19],[14,4],[15,23],[16,6],[19,9],[23,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,4],["Request_delivery","A",5,0,5],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,6],["Request_delivery","A",10,1,7],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,3],["Receive_order_and_buy","A",15,2,7],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,7],["Producer","C",21,4,1],["Sell","A",23,4,5] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,14],[5,4],[6,5],[6,19],[6,16],[9,8],[9,23],[10,9],[11,10],[11,19],[13,8],[14,13],[14,3],[15,14],[15,10],[16,15],[16,5],[19,15],[23,13],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,14],[5,16],[8,13],[10,15],[13,23],[14,4],[15,19],[16,6],[19,11],[23,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000280584, 
+[ ["Consumers","R",1,0,0],["Consumer","C",2,0,1],["Request_delivery","A",3,0,2],["Not_available","A",4,0,6],["Request_delivery","A",5,0,7],["Not_available","A",6,0,9],["Consumer","C",7,1,1],["Request_delivery","A",8,1,2],["Receive_supply","A",9,1,3],["Request_delivery","A",10,1,4],["Receive_supply","A",11,1,8],["Supply_Office","R",12,2,0],["Receive_order_and_buy","A",13,2,2],["Receive_order_and_buy","A",14,2,4],["Receive_order_and_buy","A",15,2,5],["Receive_order_and_buy","A",16,2,8],["Producers","R",17,3,0],["Producer","C",18,3,1],["Sell","A",19,3,2],["Producer","C",21,4,1],["Sell","A",23,4,7] ],
+
+[[2,1],[3,2],[4,2],[4,21],[5,2],[6,2],[6,18],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12],[15,12],[16,12],[18,17],[19,18],[21,17],[23,21]],
+[[4,3],[4,15],[5,4],[6,5],[6,19],[6,16],[9,8],[9,19],[10,9],[11,10],[11,23],[13,8],[14,13],[14,10],[15,14],[15,3],[16,15],[16,5],[19,13],[23,14],[23,4]],
+["Is_supplier_for", [18,7],[21,7]],
+["related_to", [3,15],[5,16],[8,13],[10,14],[13,19],[14,23],[15,4],[16,6],[19,9],[23,11]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example20_MP_model__reuse.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example20_MP_model__reuse.json
new file mode 100644
index 0000000..cd519da
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example20_MP_model__reuse.json
@@ -0,0 +1,51 @@
+{"traces":[
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["cancel_access_request","A",7,1,3],["creds_invalid","A",6,2,3],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["abandon_access_request","A",12,2,4],["User","R",13,3,0],["login_fails","A",14,3,1] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[9,8],[9,13],[10,8],[10,13],[12,8],[12,13],[14,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[12,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["creds_valid","A",6,2,3],["access_granted","A",7,2,4],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["User","R",13,3,0],["login_succeeds","A",14,3,4],["work","A",15,3,5] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[7,8],[7,13],[9,8],[9,13],[10,8],[10,13],[14,13],[15,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[14,7],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["Authentication_Service","R",3,1,0],["request_ID","C",4,1,1],["creds_valid","A",6,2,3],["access_granted","A",7,2,4],["Requester","R",8,2,0],["request_access","A",9,2,1],["provide_ID","A",10,2,2],["User","R",13,3,0],["login_succeeds","A",14,3,4],["cancel","A",15,3,5] ],
+
+[[2,1],[2,4],[4,3],[6,3],[6,8],[6,13],[7,3],[7,8],[7,13],[9,8],[9,13],[10,8],[10,13],[14,13],[15,13]],
+[[4,9],[6,4],[6,10],[7,6],[10,9],[10,4],[14,7],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["check_ID","A",3,0,6],["Authentication_Service","R",4,1,0],["request_ID","C",5,1,1],["request_ID","C",8,1,5],["cancel_access_request","A",11,1,7],["creds_invalid","A",7,2,3],["creds_invalid","A",10,2,7],["Requester","R",12,2,0],["request_access","A",13,2,1],["provide_ID","A",14,2,2],["request_access","A",16,2,5],["provide_ID","A",17,2,6],["abandon_access_request","A",19,2,8],["User","R",20,3,0],["login_fails","A",21,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,8],[5,4],[7,4],[7,12],[7,20],[8,4],[10,4],[10,12],[10,20],[11,4],[13,12],[13,20],[14,12],[14,20],[16,12],[16,20],[17,12],[17,20],[19,12],[19,20],[21,20]],
+[[3,2],[5,13],[7,5],[7,14],[8,7],[8,16],[10,8],[10,17],[11,10],[14,13],[14,5],[16,7],[17,16],[17,8],[19,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["check_ID","A",3,0,7],["Authentication_Service","R",4,1,0],["request_ID","C",5,1,1],["request_ID","C",8,1,6],["creds_invalid","A",7,2,3],["creds_valid","A",10,2,8],["access_granted","A",11,2,9],["Requester","R",12,2,0],["request_access","A",13,2,1],["provide_ID","A",14,2,2],["request_access","A",16,2,6],["provide_ID","A",17,2,7],["User","R",20,3,0],["login_succeeds","A",21,3,9],["work","A",22,3,10] ],
+
+[[2,1],[2,5],[3,1],[3,8],[5,4],[7,4],[7,12],[7,20],[8,4],[10,4],[10,12],[10,20],[11,4],[11,12],[11,20],[13,12],[13,20],[14,12],[14,20],[16,12],[16,20],[17,12],[17,20],[21,20],[22,20]],
+[[3,2],[5,13],[7,5],[7,14],[8,7],[8,16],[10,8],[10,17],[11,10],[14,13],[14,5],[16,7],[17,16],[17,8],[21,11],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Data_Base","R",1,0,0],["check_ID","A",2,0,2],["check_ID","A",3,0,7],["Authentication_Service","R",4,1,0],["request_ID","C",5,1,1],["request_ID","C",8,1,6],["creds_invalid","A",7,2,3],["creds_valid","A",10,2,8],["access_granted","A",11,2,9],["Requester","R",12,2,0],["request_access","A",13,2,1],["provide_ID","A",14,2,2],["request_access","A",16,2,6],["provide_ID","A",17,2,7],["User","R",20,3,0],["login_succeeds","A",21,3,9],["cancel","A",22,3,10] ],
+
+[[2,1],[2,5],[3,1],[3,8],[5,4],[7,4],[7,12],[7,20],[8,4],[10,4],[10,12],[10,20],[11,4],[11,12],[11,20],[13,12],[13,20],[14,12],[14,20],[16,12],[16,20],[17,12],[17,20],[21,20],[22,20]],
+[[3,2],[5,13],[7,5],[7,14],[8,7],[8,16],[10,8],[10,17],[11,10],[14,13],[14,5],[16,7],[17,16],[17,8],[21,11],[22,21]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example21_compiler1.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example21_compiler1.json
new file mode 100644
index 0000000..a012a25
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example21_compiler1.json
@@ -0,0 +1,1179 @@
+{"traces":[
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Reduce","C",23,3,9],["Pop","A",24,3,10],["Push","A",25,3,11],["Put_node","A",26,3,12],["Parsing_complete","A",27,3,13],["Stack","C",28,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,28],[19,16],[20,19],[20,28],[21,19],[21,28],[22,16],[23,16],[24,23],[24,28],[25,23],[25,28],[26,16],[27,16],[28,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0634921, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Report_syntax_error","A",23,3,9],["Stack","C",24,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,24],[19,16],[20,19],[20,24],[21,19],[21,24],[22,16],[23,16],[24,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Reduce","C",23,3,9],["Pop","A",24,3,10],["Push","A",25,3,11],["Put_node","A",26,3,12],["Reduce","C",27,3,13],["Pop","A",28,3,14],["Push","A",29,3,15],["Put_node","A",30,3,16],["Parsing_complete","A",31,3,17],["Stack","C",32,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,32],[19,16],[20,19],[20,32],[21,19],[21,32],[22,16],[23,16],[24,23],[24,32],[25,23],[25,32],[26,16],[27,16],[28,27],[28,32],[29,27],[29,32],[30,16],[31,16],[32,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Token_list","R",12,2,0],["get_token","A",14,2,5],["Parser","R",15,3,0],["Shift_Reduce","C",16,3,1],["Push","A",17,3,2],["Reduce","C",19,3,5],["Pop","A",20,3,6],["Push","A",21,3,7],["Put_node","A",22,3,8],["Reduce","C",23,3,9],["Pop","A",24,3,10],["Push","A",25,3,11],["Put_node","A",26,3,12],["Report_syntax_error","A",27,3,13],["Stack","C",28,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,12],[14,12],[14,16],[16,15],[17,16],[17,28],[19,16],[20,19],[20,28],[21,19],[21,28],[22,16],[23,16],[24,23],[24,28],[25,23],[25,28],[26,16],[27,16],[28,15]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[14,10],[14,17],[19,14],[20,17],[21,20],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Parsing_complete","A",29,4,14],["Stack","C",30,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[12,14],[16,14],[16,18],[18,17],[19,18],[19,30],[21,18],[22,21],[22,30],[23,21],[23,30],[24,18],[25,18],[26,25],[26,30],[27,25],[27,30],[28,18],[29,18],[30,17]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[16,12],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Report_syntax_error","A",25,4,10],["Stack","C",26,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[12,14],[16,14],[16,18],[18,17],[19,18],[19,26],[21,18],[22,21],[22,26],[23,21],[23,26],[24,18],[25,18],[26,17]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[16,12],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Reduce","C",29,4,14],["Pop","A",30,4,15],["Push","A",31,4,16],["Put_node","A",32,4,17],["Parsing_complete","A",33,4,18],["Stack","C",34,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[12,14],[16,14],[16,18],[18,17],[19,18],[19,34],[21,18],[22,21],[22,34],[23,21],[23,34],[24,18],[25,18],[26,25],[26,34],[27,25],[27,34],[28,18],[29,18],[30,29],[30,34],[31,29],[31,34],[32,18],[33,18],[34,17]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[16,12],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Report_syntax_error","A",29,4,14],["Stack","C",30,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[12,14],[16,14],[16,18],[18,17],[19,18],[19,30],[21,18],[22,21],[22,30],[23,21],[23,30],[24,18],[25,18],[26,25],[26,30],[27,25],[27,30],[28,18],[29,18],[30,17]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[16,12],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Parsing_complete","A",29,4,14],["Stack","C",30,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,14],[11,5],[12,11],[16,14],[16,18],[18,17],[19,18],[19,30],[21,18],[22,21],[22,30],[23,21],[23,30],[24,18],[25,18],[26,25],[26,30],[27,25],[27,30],[28,18],[29,18],[30,17]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[16,10],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Report_syntax_error","A",25,4,10],["Stack","C",26,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,14],[11,5],[12,11],[16,14],[16,18],[18,17],[19,18],[19,26],[21,18],[22,21],[22,26],[23,21],[23,26],[24,18],[25,18],[26,17]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[16,10],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Reduce","C",29,4,14],["Pop","A",30,4,15],["Push","A",31,4,16],["Put_node","A",32,4,17],["Parsing_complete","A",33,4,18],["Stack","C",34,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,14],[11,5],[12,11],[16,14],[16,18],[18,17],[19,18],[19,34],[21,18],[22,21],[22,34],[23,21],[23,34],[24,18],[25,18],[26,25],[26,34],[27,25],[27,34],[28,18],[29,18],[30,29],[30,34],[31,29],[31,34],[32,18],[33,18],[34,17]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[16,10],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Token_list","R",14,3,0],["get_token","A",16,3,6],["Parser","R",17,4,0],["Shift_Reduce","C",18,4,1],["Push","A",19,4,2],["Reduce","C",21,4,6],["Pop","A",22,4,7],["Push","A",23,4,8],["Put_node","A",24,4,9],["Reduce","C",25,4,10],["Pop","A",26,4,11],["Push","A",27,4,12],["Put_node","A",28,4,13],["Report_syntax_error","A",29,4,14],["Stack","C",30,5,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[10,14],[11,5],[12,11],[16,14],[16,18],[18,17],[19,18],[19,30],[21,18],[22,21],[22,30],[23,21],[23,30],[24,18],[25,18],[26,25],[26,30],[27,25],[27,30],[28,18],[29,18],[30,17]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[16,10],[16,19],[21,16],[22,19],[23,22],[24,21],[25,24],[26,23],[27,26],[28,25],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["Reduce","C",29,3,10],["Pop","A",30,3,11],["Push","A",31,3,12],["Put_node","A",32,3,13],["Reduce","C",33,3,14],["Pop","A",34,3,15],["Push","A",35,3,16],["Put_node","A",36,3,17],["Parsing_complete","A",37,3,18],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,26],[26,25],[27,26],[27,38],[29,26],[30,29],[30,38],[31,29],[31,38],[32,26],[33,26],[34,33],[34,38],[35,33],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,27],[29,24],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["Reduce","C",29,3,10],["Pop","A",30,3,11],["Push","A",31,3,12],["Put_node","A",32,3,13],["Report_syntax_error","A",33,3,14],["Stack","C",34,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,26],[26,25],[27,26],[27,34],[29,26],[30,29],[30,34],[31,29],[31,34],[32,26],[33,26],[34,25]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,27],[29,24],[30,27],[31,30],[32,29],[33,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["Reduce","C",29,3,10],["Pop","A",30,3,11],["Push","A",31,3,12],["Put_node","A",32,3,13],["Reduce","C",33,3,14],["Pop","A",34,3,15],["Push","A",35,3,16],["Put_node","A",36,3,17],["Reduce","C",37,3,18],["Pop","A",38,3,19],["Push","A",39,3,20],["Put_node","A",40,3,21],["Parsing_complete","A",41,3,22],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,26],[26,25],[27,26],[27,42],[29,26],[30,29],[30,42],[31,29],[31,42],[32,26],[33,26],[34,33],[34,42],[35,33],[35,42],[36,26],[37,26],[38,37],[38,42],[39,37],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,27],[29,24],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["Reduce","C",29,3,10],["Pop","A",30,3,11],["Push","A",31,3,12],["Put_node","A",32,3,13],["Reduce","C",33,3,14],["Pop","A",34,3,15],["Push","A",35,3,16],["Put_node","A",36,3,17],["Report_syntax_error","A",37,3,18],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,26],[26,25],[27,26],[27,38],[29,26],[30,29],[30,38],[31,29],[31,38],[32,26],[33,26],[34,33],[34,38],[35,33],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,27],[29,24],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.015873, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Parsing_complete","A",37,3,16],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,38],[30,27],[31,30],[31,38],[33,27],[34,33],[34,38],[35,33],[35,38],[36,27],[37,27],[38,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Pop","A",35,3,14],["Push","A",36,3,15],["Put_node","A",37,3,16],["Parsing_complete","A",38,3,17],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,39],[30,27],[31,30],[31,39],[33,27],[34,33],[34,39],[35,33],[35,39],[36,33],[36,39],[37,27],[38,27],[39,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,35],[37,33],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.126984, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Report_syntax_error","A",33,3,12],["Stack","C",34,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,34],[30,27],[31,30],[31,34],[33,27],[34,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Reduce","C",37,3,16],["Pop","A",38,3,17],["Push","A",39,3,18],["Put_node","A",40,3,19],["Parsing_complete","A",41,3,20],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,42],[30,27],[31,30],[31,42],[33,27],[34,33],[34,42],[35,33],[35,42],[36,27],[37,27],[38,37],[38,42],[39,37],[39,42],[40,27],[41,27],[42,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Reduce","C",37,3,16],["Pop","A",38,3,17],["Pop","A",39,3,18],["Push","A",40,3,19],["Put_node","A",41,3,20],["Parsing_complete","A",42,3,21],["Stack","C",43,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,43],[30,27],[31,30],[31,43],[33,27],[34,33],[34,43],[35,33],[35,43],[36,27],[37,27],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,27],[42,27],[43,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Report_syntax_error","A",37,3,16],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,38],[30,27],[31,30],[31,38],[33,27],[34,33],[34,38],[35,33],[35,38],[36,27],[37,27],[38,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Pop","A",35,3,14],["Push","A",36,3,15],["Put_node","A",37,3,16],["Reduce","C",38,3,17],["Pop","A",39,3,18],["Push","A",40,3,19],["Put_node","A",41,3,20],["Parsing_complete","A",42,3,21],["Stack","C",43,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,43],[30,27],[31,30],[31,43],[33,27],[34,33],[34,43],[35,33],[35,43],[36,33],[36,43],[37,27],[38,27],[39,38],[39,43],[40,38],[40,43],[41,27],[42,27],[43,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,35],[37,33],[38,37],[39,36],[40,39],[41,38],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,11],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Shift","C",30,3,10],["Push","A",31,3,11],["Reduce","C",33,3,12],["Pop","A",34,3,13],["Pop","A",35,3,14],["Push","A",36,3,15],["Put_node","A",37,3,16],["Report_syntax_error","A",38,3,17],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,30],[27,26],[28,27],[28,39],[30,27],[31,30],[31,39],[33,27],[34,33],[34,39],[35,33],[35,39],[36,33],[36,39],[37,27],[38,27],[39,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,31],[30,24],[31,28],[33,30],[34,31],[35,34],[36,35],[37,33],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,15],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Shift","C",34,3,14],["Push","A",35,3,15],["Reduce","C",37,3,16],["Pop","A",38,3,17],["Push","A",39,3,18],["Put_node","A",40,3,19],["Parsing_complete","A",41,3,20],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,34],[27,26],[28,27],[28,42],[30,27],[31,30],[31,42],[32,30],[32,42],[33,27],[34,27],[35,34],[35,42],[37,27],[38,37],[38,42],[39,37],[39,42],[40,27],[41,27],[42,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,35],[30,24],[31,28],[32,31],[33,30],[34,33],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,15],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Shift","C",34,3,14],["Push","A",35,3,15],["Reduce","C",37,3,16],["Pop","A",38,3,17],["Pop","A",39,3,18],["Push","A",40,3,19],["Put_node","A",41,3,20],["Parsing_complete","A",42,3,21],["Stack","C",43,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,34],[27,26],[28,27],[28,43],[30,27],[31,30],[31,43],[32,30],[32,43],[33,27],[34,27],[35,34],[35,43],[37,27],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,27],[42,27],[43,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,35],[30,24],[31,28],[32,31],[33,30],[34,33],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Token_list","R",21,2,0],["get_token","A",24,2,10],["get_token","A",25,2,15],["Parser","R",26,3,0],["Shift_Reduce","C",27,3,1],["Push","A",28,3,2],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Shift","C",34,3,14],["Push","A",35,3,15],["Report_syntax_error","A",37,3,16],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,21],[14,6],[16,14],[17,16],[18,16],[19,16],[19,21],[24,21],[24,27],[25,21],[25,34],[27,26],[28,27],[28,38],[30,27],[31,30],[31,38],[32,30],[32,38],[33,27],[34,27],[35,34],[35,38],[37,27],[38,26]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[24,19],[24,28],[25,24],[25,35],[30,24],[31,28],[32,31],[33,30],[34,33],[35,32],[37,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Parsing_complete","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.015873, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Report_syntax_error","A",35,4,15],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,36],[31,28],[32,31],[32,36],[33,31],[33,36],[34,28],[35,28],[36,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Reduce","C",39,4,19],["Pop","A",40,4,20],["Push","A",41,4,21],["Put_node","A",42,4,22],["Parsing_complete","A",43,4,23],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,44],[31,28],[32,31],[32,44],[33,31],[33,44],[34,28],[35,28],[36,35],[36,44],[37,35],[37,44],[38,28],[39,28],[40,39],[40,44],[41,39],[41,44],[42,28],[43,28],[44,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Report_syntax_error","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Parsing_complete","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Parsing_complete","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0634921, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Report_syntax_error","A",35,4,13],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,36],[32,29],[33,32],[33,36],[35,29],[36,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[35,29],[36,35],[36,44],[37,35],[37,44],[38,29],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,29],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Reduce","C",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,35],[38,45],[39,29],[40,29],[41,40],[41,45],[42,40],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39],[41,38],[42,41],[43,40],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Report_syntax_error","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[34,32],[34,44],[35,29],[36,29],[37,36],[37,44],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[34,32],[34,45],[35,29],[36,29],[37,36],[37,45],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[34,32],[34,40],[35,29],[36,29],[37,36],[37,40],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Parsing_complete","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.015873, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Report_syntax_error","A",35,4,15],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,28],[28,27],[29,28],[29,36],[31,28],[32,31],[32,36],[33,31],[33,36],[34,28],[35,28],[36,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Reduce","C",39,4,19],["Pop","A",40,4,20],["Push","A",41,4,21],["Put_node","A",42,4,22],["Parsing_complete","A",43,4,23],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,28],[28,27],[29,28],[29,44],[31,28],[32,31],[32,44],[33,31],[33,44],[34,28],[35,28],[36,35],[36,44],[37,35],[37,44],[38,28],[39,28],[40,39],[40,44],[41,39],[41,44],[42,28],[43,28],[44,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Report_syntax_error","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Parsing_complete","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Parsing_complete","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0634921, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Report_syntax_error","A",35,4,13],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,36],[32,29],[33,32],[33,36],[35,29],[36,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[35,29],[36,35],[36,44],[37,35],[37,44],[38,29],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,29],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Reduce","C",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,35],[38,45],[39,29],[40,29],[41,40],[41,45],[42,40],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39],[41,38],[42,41],[43,40],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Report_syntax_error","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[34,32],[34,44],[35,29],[36,29],[37,36],[37,44],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[34,32],[34,45],[35,29],[36,29],[37,36],[37,45],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[14,6],[16,14],[17,16],[18,16],[19,16],[19,23],[20,14],[21,20],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[34,32],[34,40],[35,29],[36,29],[37,36],[37,40],[39,29],[40,28]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[19,12],[20,4],[26,19],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,9],["Pop","A",32,4,10],["Push","A",33,4,11],["Put_node","A",34,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Parsing_complete","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.015873, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,9],["Pop","A",32,4,10],["Push","A",33,4,11],["Put_node","A",34,4,12],["Report_syntax_error","A",35,4,13],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,36],[31,28],[32,31],[32,36],[33,31],[33,36],[34,28],[35,28],[36,27]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,9],["Pop","A",32,4,10],["Push","A",33,4,11],["Put_node","A",34,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,44],[31,28],[32,31],[32,44],[33,31],[33,44],[34,28],[35,28],[36,35],[36,44],[37,35],[37,44],[38,28],[39,28],[40,39],[40,44],[41,39],[41,44],[42,28],[43,28],[44,27]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,9],["Pop","A",32,4,10],["Push","A",33,4,11],["Put_node","A",34,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Push","A",37,4,13],["Put_node","A",38,4,14],["Parsing_complete","A",39,4,15],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Pop","A",37,4,13],["Push","A",38,4,14],["Put_node","A",39,4,15],["Parsing_complete","A",40,4,16],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0634921, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Report_syntax_error","A",35,4,11],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,36],[32,29],[33,32],[33,36],[35,29],[36,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Push","A",37,4,13],["Put_node","A",38,4,14],["Reduce","C",39,4,15],["Pop","A",40,4,16],["Push","A",41,4,17],["Put_node","A",42,4,18],["Parsing_complete","A",43,4,19],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[35,29],[36,35],[36,44],[37,35],[37,44],[38,29],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Push","A",37,4,13],["Put_node","A",38,4,14],["Reduce","C",39,4,15],["Pop","A",40,4,16],["Pop","A",41,4,17],["Push","A",42,4,18],["Put_node","A",43,4,19],["Parsing_complete","A",44,4,20],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,29],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Push","A",37,4,13],["Put_node","A",38,4,14],["Report_syntax_error","A",39,4,15],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Pop","A",37,4,13],["Push","A",38,4,14],["Put_node","A",39,4,15],["Reduce","C",40,4,16],["Pop","A",41,4,17],["Push","A",42,4,18],["Put_node","A",43,4,19],["Parsing_complete","A",44,4,20],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,35],[38,45],[39,29],[40,29],[41,40],[41,45],[42,40],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39],[41,38],[42,41],[43,40],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,10],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,9],["Push","A",33,4,10],["Reduce","C",35,4,11],["Pop","A",36,4,12],["Pop","A",37,4,13],["Push","A",38,4,14],["Put_node","A",39,4,15],["Report_syntax_error","A",40,4,16],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,14],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,9],["Pop","A",33,4,10],["Push","A",34,4,11],["Put_node","A",35,4,12],["Shift","C",36,4,13],["Push","A",37,4,14],["Reduce","C",39,4,15],["Pop","A",40,4,16],["Push","A",41,4,17],["Put_node","A",42,4,18],["Parsing_complete","A",43,4,19],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[34,32],[34,44],[35,29],[36,29],[37,36],[37,44],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,14],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,9],["Pop","A",33,4,10],["Push","A",34,4,11],["Put_node","A",35,4,12],["Shift","C",36,4,13],["Push","A",37,4,14],["Reduce","C",39,4,15],["Pop","A",40,4,16],["Pop","A",41,4,17],["Push","A",42,4,18],["Put_node","A",43,4,19],["Parsing_complete","A",44,4,20],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[34,32],[34,45],[35,29],[36,29],[37,36],[37,45],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Token_list","R",23,3,0],["get_token","A",26,3,9],["get_token","A",27,3,14],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,9],["Pop","A",33,4,10],["Push","A",34,4,11],["Put_node","A",35,4,12],["Shift","C",36,4,13],["Push","A",37,4,14],["Report_syntax_error","A",39,4,15],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,23],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[34,32],[34,40],[35,29],[36,29],[37,36],[37,40],[39,29],[40,28]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,10],["Pop","A",34,4,11],["Push","A",35,4,12],["Put_node","A",36,4,13],["Reduce","C",37,4,14],["Pop","A",38,4,15],["Push","A",39,4,16],["Put_node","A",40,4,17],["Parsing_complete","A",41,4,18],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,10],["Pop","A",34,4,11],["Push","A",35,4,12],["Put_node","A",36,4,13],["Report_syntax_error","A",37,4,14],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,38],[33,30],[34,33],[34,38],[35,33],[35,38],[36,30],[37,30],[38,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 6.2004e-05, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,10],["Pop","A",34,4,11],["Push","A",35,4,12],["Put_node","A",36,4,13],["Reduce","C",37,4,14],["Pop","A",38,4,15],["Push","A",39,4,16],["Put_node","A",40,4,17],["Reduce","C",41,4,18],["Pop","A",42,4,19],["Push","A",43,4,20],["Put_node","A",44,4,21],["Parsing_complete","A",45,4,22],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,46],[33,30],[34,33],[34,46],[35,33],[35,46],[36,30],[37,30],[38,37],[38,46],[39,37],[39,46],[40,30],[41,30],[42,41],[42,46],[43,41],[43,46],[44,30],[45,30],[46,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,10],["Pop","A",34,4,11],["Push","A",35,4,12],["Put_node","A",36,4,13],["Reduce","C",37,4,14],["Pop","A",38,4,15],["Push","A",39,4,16],["Put_node","A",40,4,17],["Report_syntax_error","A",41,4,18],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Push","A",39,4,14],["Put_node","A",40,4,15],["Parsing_complete","A",41,4,16],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Pop","A",39,4,14],["Push","A",40,4,15],["Put_node","A",41,4,16],["Parsing_complete","A",42,4,17],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Report_syntax_error","A",37,4,12],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,38],[34,31],[35,34],[35,38],[37,31],[38,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Push","A",39,4,14],["Put_node","A",40,4,15],["Reduce","C",41,4,16],["Pop","A",42,4,17],["Push","A",43,4,18],["Put_node","A",44,4,19],["Parsing_complete","A",45,4,20],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[37,31],[38,37],[38,46],[39,37],[39,46],[40,31],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Push","A",39,4,14],["Put_node","A",40,4,15],["Reduce","C",41,4,16],["Pop","A",42,4,17],["Pop","A",43,4,18],["Push","A",44,4,19],["Put_node","A",45,4,20],["Parsing_complete","A",46,4,21],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,31],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Push","A",39,4,14],["Put_node","A",40,4,15],["Report_syntax_error","A",41,4,16],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Pop","A",39,4,14],["Push","A",40,4,15],["Put_node","A",41,4,16],["Reduce","C",42,4,17],["Pop","A",43,4,18],["Push","A",44,4,19],["Put_node","A",45,4,20],["Parsing_complete","A",46,4,21],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,37],[40,47],[41,31],[42,31],[43,42],[43,47],[44,42],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41],[43,40],[44,43],[45,42],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,11],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,10],["Push","A",35,4,11],["Reduce","C",37,4,12],["Pop","A",38,4,13],["Pop","A",39,4,14],["Push","A",40,4,15],["Put_node","A",41,4,16],["Report_syntax_error","A",42,4,17],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,15],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,10],["Pop","A",35,4,11],["Push","A",36,4,12],["Put_node","A",37,4,13],["Shift","C",38,4,14],["Push","A",39,4,15],["Reduce","C",41,4,16],["Pop","A",42,4,17],["Push","A",43,4,18],["Put_node","A",44,4,19],["Parsing_complete","A",45,4,20],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[36,34],[36,46],[37,31],[38,31],[39,38],[39,46],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,15],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,10],["Pop","A",35,4,11],["Push","A",36,4,12],["Put_node","A",37,4,13],["Shift","C",38,4,14],["Push","A",39,4,15],["Reduce","C",41,4,16],["Pop","A",42,4,17],["Pop","A",43,4,18],["Push","A",44,4,19],["Put_node","A",45,4,20],["Parsing_complete","A",46,4,21],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[36,34],[36,47],[37,31],[38,31],[39,38],[39,47],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Token_list","R",25,3,0],["get_token","A",28,3,10],["get_token","A",29,3,15],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,10],["Pop","A",35,4,11],["Push","A",36,4,12],["Put_node","A",37,4,13],["Shift","C",38,4,14],["Push","A",39,4,15],["Report_syntax_error","A",41,4,16],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[36,34],[36,42],[37,31],[38,31],[39,38],[39,42],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[23,14],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,9],["Pop","A",34,4,10],["Push","A",35,4,11],["Put_node","A",36,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Parsing_complete","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,9],["Pop","A",34,4,10],["Push","A",35,4,11],["Put_node","A",36,4,12],["Report_syntax_error","A",37,4,13],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,38],[33,30],[34,33],[34,38],[35,33],[35,38],[36,30],[37,30],[38,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 6.2004e-05, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,9],["Pop","A",34,4,10],["Push","A",35,4,11],["Put_node","A",36,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Push","A",43,4,19],["Put_node","A",44,4,20],["Parsing_complete","A",45,4,21],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,46],[33,30],[34,33],[34,46],[35,33],[35,46],[36,30],[37,30],[38,37],[38,46],[39,37],[39,46],[40,30],[41,30],[42,41],[42,46],[43,41],[43,46],[44,30],[45,30],[46,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,9],["Pop","A",34,4,10],["Push","A",35,4,11],["Put_node","A",36,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Report_syntax_error","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Push","A",39,4,13],["Put_node","A",40,4,14],["Parsing_complete","A",41,4,15],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Pop","A",39,4,13],["Push","A",40,4,14],["Put_node","A",41,4,15],["Parsing_complete","A",42,4,16],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Report_syntax_error","A",37,4,11],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,38],[34,31],[35,34],[35,38],[37,31],[38,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Push","A",39,4,13],["Put_node","A",40,4,14],["Reduce","C",41,4,15],["Pop","A",42,4,16],["Push","A",43,4,17],["Put_node","A",44,4,18],["Parsing_complete","A",45,4,19],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[37,31],[38,37],[38,46],[39,37],[39,46],[40,31],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Push","A",39,4,13],["Put_node","A",40,4,14],["Reduce","C",41,4,15],["Pop","A",42,4,16],["Pop","A",43,4,17],["Push","A",44,4,18],["Put_node","A",45,4,19],["Parsing_complete","A",46,4,20],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,31],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Push","A",39,4,13],["Put_node","A",40,4,14],["Report_syntax_error","A",41,4,15],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Pop","A",39,4,13],["Push","A",40,4,14],["Put_node","A",41,4,15],["Reduce","C",42,4,16],["Pop","A",43,4,17],["Push","A",44,4,18],["Put_node","A",45,4,19],["Parsing_complete","A",46,4,20],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,37],[40,47],[41,31],[42,31],[43,42],[43,47],[44,42],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41],[43,40],[44,43],[45,42],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,10],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,9],["Push","A",35,4,10],["Reduce","C",37,4,11],["Pop","A",38,4,12],["Pop","A",39,4,13],["Push","A",40,4,14],["Put_node","A",41,4,15],["Report_syntax_error","A",42,4,16],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,14],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,9],["Pop","A",35,4,10],["Push","A",36,4,11],["Put_node","A",37,4,12],["Shift","C",38,4,13],["Push","A",39,4,14],["Reduce","C",41,4,15],["Pop","A",42,4,16],["Push","A",43,4,17],["Put_node","A",44,4,18],["Parsing_complete","A",45,4,19],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[36,34],[36,46],[37,31],[38,31],[39,38],[39,46],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,14],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,9],["Pop","A",35,4,10],["Push","A",36,4,11],["Put_node","A",37,4,12],["Shift","C",38,4,13],["Push","A",39,4,14],["Reduce","C",41,4,15],["Pop","A",42,4,16],["Pop","A",43,4,17],["Push","A",44,4,18],["Put_node","A",45,4,19],["Parsing_complete","A",46,4,20],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[36,34],[36,47],[37,31],[38,31],[39,38],[39,47],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Token_list","R",25,3,0],["get_token","A",28,3,9],["get_token","A",29,3,14],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,9],["Pop","A",35,4,10],["Push","A",36,4,11],["Put_node","A",37,4,12],["Shift","C",38,4,13],["Push","A",39,4,14],["Report_syntax_error","A",41,4,15],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[14,25],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[36,34],[36,42],[37,31],[38,31],[39,38],[39,42],[41,31],[42,30]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[21,14],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Parsing_complete","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.015873, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Report_syntax_error","A",35,4,15],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,36],[31,28],[32,31],[32,36],[33,31],[33,36],[34,28],[35,28],[36,27]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Reduce","C",39,4,19],["Pop","A",40,4,20],["Push","A",41,4,21],["Put_node","A",42,4,22],["Parsing_complete","A",43,4,23],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,44],[31,28],[32,31],[32,44],[33,31],[33,44],[34,28],[35,28],[36,35],[36,44],[37,35],[37,44],[38,28],[39,28],[40,39],[40,44],[41,39],[41,44],[42,28],[43,28],[44,27]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["Parser","R",27,4,0],["Shift_Reduce","C",28,4,1],["Push","A",29,4,2],["Reduce","C",31,4,11],["Pop","A",32,4,12],["Push","A",33,4,13],["Put_node","A",34,4,14],["Reduce","C",35,4,15],["Pop","A",36,4,16],["Push","A",37,4,17],["Put_node","A",38,4,18],["Report_syntax_error","A",39,4,19],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,28],[28,27],[29,28],[29,40],[31,28],[32,31],[32,40],[33,31],[33,40],[34,28],[35,28],[36,35],[36,40],[37,35],[37,40],[38,28],[39,28],[40,27]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,29],[31,26],[32,29],[33,32],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Parsing_complete","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Parsing_complete","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0634921, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Report_syntax_error","A",35,4,13],["Stack","C",36,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,36],[32,29],[33,32],[33,36],[35,29],[36,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[35,29],[36,35],[36,44],[37,35],[37,44],[38,29],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,29],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Push","A",37,4,15],["Put_node","A",38,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[35,29],[36,35],[36,40],[37,35],[37,40],[38,29],[39,29],[40,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Reduce","C",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[35,29],[36,35],[36,45],[37,35],[37,45],[38,35],[38,45],[39,29],[40,29],[41,40],[41,45],[42,40],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39],[41,38],[42,41],[43,40],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,12],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Shift","C",32,4,11],["Push","A",33,4,12],["Reduce","C",35,4,13],["Pop","A",36,4,14],["Pop","A",37,4,15],["Push","A",38,4,16],["Put_node","A",39,4,17],["Report_syntax_error","A",40,4,18],["Stack","C",41,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,32],[29,28],[30,29],[30,41],[32,29],[33,32],[33,41],[35,29],[36,35],[36,41],[37,35],[37,41],[38,35],[38,41],[39,29],[40,29],[41,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,33],[32,26],[33,30],[35,32],[36,33],[37,36],[38,37],[39,35],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Push","A",41,4,19],["Put_node","A",42,4,20],["Parsing_complete","A",43,4,21],["Stack","C",44,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,44],[32,29],[33,32],[33,44],[34,32],[34,44],[35,29],[36,29],[37,36],[37,44],[39,29],[40,39],[40,44],[41,39],[41,44],[42,29],[43,29],[44,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,39],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Reduce","C",39,4,17],["Pop","A",40,4,18],["Pop","A",41,4,19],["Push","A",42,4,20],["Put_node","A",43,4,21],["Parsing_complete","A",44,4,22],["Stack","C",45,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,45],[32,29],[33,32],[33,45],[34,32],[34,45],[35,29],[36,29],[37,36],[37,45],[39,29],[40,39],[40,45],[41,39],[41,45],[42,39],[42,45],[43,29],[44,29],[45,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36],[40,37],[41,40],[42,41],[43,39],[44,43]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Token_list","R",23,3,0],["get_token","A",26,3,11],["get_token","A",27,3,16],["Parser","R",28,4,0],["Shift_Reduce","C",29,4,1],["Push","A",30,4,2],["Reduce","C",32,4,11],["Pop","A",33,4,12],["Push","A",34,4,13],["Put_node","A",35,4,14],["Shift","C",36,4,15],["Push","A",37,4,16],["Report_syntax_error","A",39,4,17],["Stack","C",40,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,23],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,23],[26,23],[26,29],[27,23],[27,36],[29,28],[30,29],[30,40],[32,29],[33,32],[33,40],[34,32],[34,40],[35,29],[36,29],[37,36],[37,40],[39,29],[40,28]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[26,21],[26,30],[27,26],[27,37],[32,26],[33,30],[34,33],[35,32],[36,35],[37,34],[39,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Parsing_complete","A",41,4,19],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Report_syntax_error","A",37,4,15],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,38],[33,30],[34,33],[34,38],[35,33],[35,38],[36,30],[37,30],[38,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 6.2004e-05, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Reduce","C",41,4,19],["Pop","A",42,4,20],["Push","A",43,4,21],["Put_node","A",44,4,22],["Parsing_complete","A",45,4,23],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,46],[33,30],[34,33],[34,46],[35,33],[35,46],[36,30],[37,30],[38,37],[38,46],[39,37],[39,46],[40,30],[41,30],[42,41],[42,46],[43,41],[43,46],[44,30],[45,30],[46,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Report_syntax_error","A",41,4,19],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Parsing_complete","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Parsing_complete","A",42,4,18],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Report_syntax_error","A",37,4,13],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,38],[34,31],[35,34],[35,38],[37,31],[38,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Push","A",43,4,19],["Put_node","A",44,4,20],["Parsing_complete","A",45,4,21],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[37,31],[38,37],[38,46],[39,37],[39,46],[40,31],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,31],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Report_syntax_error","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Reduce","C",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,37],[40,47],[41,31],[42,31],[43,42],[43,47],[44,42],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41],[43,40],[44,43],[45,42],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Report_syntax_error","A",42,4,18],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Push","A",43,4,19],["Put_node","A",44,4,20],["Parsing_complete","A",45,4,21],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[36,34],[36,46],[37,31],[38,31],[39,38],[39,46],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[36,34],[36,47],[37,31],[38,31],[39,38],[39,47],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Report_syntax_error","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[23,25],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[36,34],[36,42],[37,31],[38,31],[39,38],[39,42],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[23,12],[28,23],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Parsing_complete","A",41,4,19],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00793651, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Report_syntax_error","A",37,4,15],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,38],[33,30],[34,33],[34,38],[35,33],[35,38],[36,30],[37,30],[38,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 6.2004e-05, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Reduce","C",41,4,19],["Pop","A",42,4,20],["Push","A",43,4,21],["Put_node","A",44,4,22],["Parsing_complete","A",45,4,23],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,46],[33,30],[34,33],[34,46],[35,33],[35,46],[36,30],[37,30],[38,37],[38,46],[39,37],[39,46],[40,30],[41,30],[42,41],[42,46],[43,41],[43,46],[44,30],[45,30],[46,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000496032, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["Parser","R",29,4,0],["Shift_Reduce","C",30,4,1],["Push","A",31,4,2],["Reduce","C",33,4,11],["Pop","A",34,4,12],["Push","A",35,4,13],["Put_node","A",36,4,14],["Reduce","C",37,4,15],["Pop","A",38,4,16],["Push","A",39,4,17],["Put_node","A",40,4,18],["Report_syntax_error","A",41,4,19],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,30],[30,29],[31,30],[31,42],[33,30],[34,33],[34,42],[35,33],[35,42],[36,30],[37,30],[38,37],[38,42],[39,37],[39,42],[40,30],[41,30],[42,29]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,31],[33,28],[34,31],[35,34],[36,33],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00396825, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Parsing_complete","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Parsing_complete","A",42,4,18],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.031746, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Report_syntax_error","A",37,4,13],["Stack","C",38,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,38],[34,31],[35,34],[35,38],[37,31],[38,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Push","A",43,4,19],["Put_node","A",44,4,20],["Parsing_complete","A",45,4,21],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[37,31],[38,37],[38,46],[39,37],[39,46],[40,31],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,31],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Push","A",39,4,15],["Put_node","A",40,4,16],["Report_syntax_error","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[37,31],[38,37],[38,42],[39,37],[39,42],[40,31],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Reduce","C",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[37,31],[38,37],[38,47],[39,37],[39,47],[40,37],[40,47],[41,31],[42,31],[43,42],[43,47],[44,42],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41],[43,40],[44,43],[45,42],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000992064, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,12],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Shift","C",34,4,11],["Push","A",35,4,12],["Reduce","C",37,4,13],["Pop","A",38,4,14],["Pop","A",39,4,15],["Push","A",40,4,16],["Put_node","A",41,4,17],["Report_syntax_error","A",42,4,18],["Stack","C",43,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,34],[31,30],[32,31],[32,43],[34,31],[35,34],[35,43],[37,31],[38,37],[38,43],[39,37],[39,43],[40,37],[40,43],[41,31],[42,31],[43,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,35],[34,28],[35,32],[37,34],[38,35],[39,38],[40,39],[41,37],[42,41]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000248016, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Push","A",43,4,19],["Put_node","A",44,4,20],["Parsing_complete","A",45,4,21],["Stack","C",46,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,46],[34,31],[35,34],[35,46],[36,34],[36,46],[37,31],[38,31],[39,38],[39,46],[41,31],[42,41],[42,46],[43,41],[43,46],[44,31],[45,31],[46,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,41],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000124008, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Reduce","C",41,4,17],["Pop","A",42,4,18],["Pop","A",43,4,19],["Push","A",44,4,20],["Put_node","A",45,4,21],["Parsing_complete","A",46,4,22],["Stack","C",47,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,47],[34,31],[35,34],[35,47],[36,34],[36,47],[37,31],[38,31],[39,38],[39,47],[41,31],[42,41],[42,47],[43,41],[43,47],[44,41],[44,47],[45,31],[46,31],[47,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38],[42,39],[43,42],[44,43],[45,41],[46,45]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00198413, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Token_list","R",25,3,0],["get_token","A",28,3,11],["get_token","A",29,3,16],["Parser","R",30,4,0],["Shift_Reduce","C",31,4,1],["Push","A",32,4,2],["Reduce","C",34,4,11],["Pop","A",35,4,12],["Push","A",36,4,13],["Put_node","A",37,4,14],["Shift","C",38,4,15],["Push","A",39,4,16],["Report_syntax_error","A",41,4,17],["Stack","C",42,5,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[12,25],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[21,25],[22,16],[23,22],[28,25],[28,31],[29,25],[29,38],[31,30],[32,31],[32,42],[34,31],[35,34],[35,42],[36,34],[36,42],[37,31],[38,31],[39,38],[39,42],[41,31],[42,30]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[21,12],[22,4],[28,21],[28,32],[29,28],[29,39],[34,28],[35,32],[36,35],[37,34],[38,37],[39,36],[41,38]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example22_compiler2.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example22_compiler2.json
new file mode 100644
index 0000000..7f92cc6
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example22_compiler2.json
@@ -0,0 +1,891 @@
+{"traces":[
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Reduce","C",20,2,10],["Pop","A",21,2,11],["Push","A",22,2,12],["Put_node","A",23,2,13],["Parsing_complete","A",24,2,14],["Stack","C",25,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,25],[15,13],[16,13],[17,16],[17,25],[18,16],[18,25],[19,13],[20,13],[21,20],[21,25],[22,20],[22,25],[23,13],[24,13],[25,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0748538, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Report_syntax_error","A",20,2,10],["Stack","C",21,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,21],[15,13],[16,13],[17,16],[17,21],[18,16],[18,21],[19,13],[20,13],[21,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Reduce","C",20,2,10],["Pop","A",21,2,11],["Push","A",22,2,12],["Put_node","A",23,2,13],["Reduce","C",24,2,14],["Pop","A",25,2,15],["Push","A",26,2,16],["Put_node","A",27,2,17],["Parsing_complete","A",28,2,18],["Stack","C",29,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,29],[15,13],[16,13],[17,16],[17,29],[18,16],[18,29],[19,13],[20,13],[21,20],[21,29],[22,20],[22,29],[23,13],[24,13],[25,24],[25,29],[26,24],[26,29],[27,13],[28,13],[29,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25],[27,24],[28,27]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["Parser","R",12,2,0],["Shift_Reduce","C",13,2,1],["Push","A",14,2,2],["get_token","A",15,2,5],["Reduce","C",16,2,6],["Pop","A",17,2,7],["Push","A",18,2,8],["Put_node","A",19,2,9],["Reduce","C",20,2,10],["Pop","A",21,2,11],["Push","A",22,2,12],["Put_node","A",23,2,13],["Report_syntax_error","A",24,2,14],["Stack","C",25,3,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[13,12],[14,13],[14,25],[15,13],[16,13],[17,16],[17,25],[18,16],[18,25],[19,13],[20,13],[21,20],[21,25],[22,20],[22,25],[23,13],[24,13],[25,12]],
+[[3,2],[3,7],[7,2],[9,8],[10,9],[15,14],[15,10],[16,15],[17,14],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Parsing_complete","A",26,3,15],["Stack","C",27,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[15,14],[16,15],[16,27],[17,15],[18,15],[19,18],[19,27],[20,18],[20,27],[21,15],[22,15],[23,22],[23,27],[24,22],[24,27],[25,15],[26,15],[27,14]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[17,16],[17,12],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Report_syntax_error","A",22,3,11],["Stack","C",23,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[15,14],[16,15],[16,23],[17,15],[18,15],[19,18],[19,23],[20,18],[20,23],[21,15],[22,15],[23,14]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[17,16],[17,12],[18,17],[19,16],[20,19],[21,18],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Reduce","C",26,3,15],["Pop","A",27,3,16],["Push","A",28,3,17],["Put_node","A",29,3,18],["Parsing_complete","A",30,3,19],["Stack","C",31,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[15,14],[16,15],[16,31],[17,15],[18,15],[19,18],[19,31],[20,18],[20,31],[21,15],[22,15],[23,22],[23,31],[24,22],[24,31],[25,15],[26,15],[27,26],[27,31],[28,26],[28,31],[29,15],[30,15],[31,14]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[17,16],[17,12],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25],[27,24],[28,27],[29,26],[30,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["RegExpr_match","C",9,2,3],["match_string","A",10,2,4],["largest_successful_match","A",11,2,5],["put_token","A",12,2,6],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Report_syntax_error","A",26,3,15],["Stack","C",27,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,5],[10,9],[11,9],[12,9],[15,14],[16,15],[16,27],[17,15],[18,15],[19,18],[19,27],[20,18],[20,27],[21,15],[22,15],[23,22],[23,27],[24,22],[24,27],[25,15],[26,15],[27,14]],
+[[3,2],[3,7],[3,9],[7,2],[9,2],[11,10],[12,11],[17,16],[17,12],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Parsing_complete","A",26,3,15],["Stack","C",27,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[11,5],[12,11],[15,14],[16,15],[16,27],[17,15],[18,15],[19,18],[19,27],[20,18],[20,27],[21,15],[22,15],[23,22],[23,27],[24,22],[24,27],[25,15],[26,15],[27,14]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[17,16],[17,10],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Report_syntax_error","A",22,3,11],["Stack","C",23,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[11,5],[12,11],[15,14],[16,15],[16,23],[17,15],[18,15],[19,18],[19,23],[20,18],[20,23],[21,15],[22,15],[23,14]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[17,16],[17,10],[18,17],[19,16],[20,19],[21,18],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Reduce","C",26,3,15],["Pop","A",27,3,16],["Push","A",28,3,17],["Put_node","A",29,3,18],["Parsing_complete","A",30,3,19],["Stack","C",31,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[11,5],[12,11],[15,14],[16,15],[16,31],[17,15],[18,15],[19,18],[19,31],[20,18],[20,31],[21,15],[22,15],[23,22],[23,31],[24,22],[24,31],[25,15],[26,15],[27,26],[27,31],[28,26],[28,31],[29,15],[30,15],[31,14]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[17,16],[17,10],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25],[27,24],[28,27],[29,26],[30,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["Lexer","R",4,1,0],["Token_recognition","C",5,1,1],["RegExpr_match","C",7,1,2],["match_string","A",8,1,3],["largest_successful_match","A",9,1,4],["put_token","A",10,1,5],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["Parser","R",14,3,0],["Shift_Reduce","C",15,3,1],["Push","A",16,3,2],["get_token","A",17,3,6],["Reduce","C",18,3,7],["Pop","A",19,3,8],["Push","A",20,3,9],["Put_node","A",21,3,10],["Reduce","C",22,3,11],["Pop","A",23,3,12],["Push","A",24,3,13],["Put_node","A",25,3,14],["Report_syntax_error","A",26,3,15],["Stack","C",27,4,1] ],
+
+[[2,1],[2,5],[3,1],[3,5],[5,4],[7,5],[8,7],[9,7],[10,7],[11,5],[12,11],[15,14],[16,15],[16,27],[17,15],[18,15],[19,18],[19,27],[20,18],[20,27],[21,15],[22,15],[23,22],[23,27],[24,22],[24,27],[25,15],[26,15],[27,14]],
+[[3,2],[3,7],[3,11],[7,2],[9,8],[10,9],[11,2],[17,16],[17,10],[18,17],[19,16],[20,19],[21,18],[22,21],[23,20],[24,23],[25,22],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0187135, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Push","A",30,2,11],["Put_node","A",31,2,12],["Parsing_complete","A",32,2,13],["Stack","C",33,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,33],[24,22],[25,22],[26,25],[26,33],[27,25],[28,22],[29,28],[29,33],[30,28],[30,33],[31,22],[32,22],[33,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,28],[32,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Pop","A",30,2,11],["Push","A",31,2,12],["Put_node","A",32,2,13],["Parsing_complete","A",33,2,14],["Stack","C",34,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,34],[24,22],[25,22],[26,25],[26,34],[27,25],[28,22],[29,28],[29,34],[30,28],[30,34],[31,28],[31,34],[32,22],[33,22],[34,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,30],[32,28],[33,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.149708, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Report_syntax_error","A",28,2,8],["Stack","C",29,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,29],[24,22],[25,22],[26,25],[26,29],[27,25],[28,22],[29,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Push","A",30,2,11],["Put_node","A",31,2,12],["Reduce","C",32,2,13],["Pop","A",33,2,14],["Push","A",34,2,15],["Put_node","A",35,2,16],["Parsing_complete","A",36,2,17],["Stack","C",37,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,37],[24,22],[25,22],[26,25],[26,37],[27,25],[28,22],[29,28],[29,37],[30,28],[30,37],[31,22],[32,22],[33,32],[33,37],[34,32],[34,37],[35,22],[36,22],[37,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Push","A",30,2,11],["Put_node","A",31,2,12],["Reduce","C",32,2,13],["Pop","A",33,2,14],["Pop","A",34,2,15],["Push","A",35,2,16],["Put_node","A",36,2,17],["Parsing_complete","A",37,2,18],["Stack","C",38,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,38],[24,22],[25,22],[26,25],[26,38],[27,25],[28,22],[29,28],[29,38],[30,28],[30,38],[31,22],[32,22],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,22],[37,22],[38,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,28],[32,31],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Push","A",30,2,11],["Put_node","A",31,2,12],["Report_syntax_error","A",32,2,13],["Stack","C",33,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,33],[24,22],[25,22],[26,25],[26,33],[27,25],[28,22],[29,28],[29,33],[30,28],[30,33],[31,22],[32,22],[33,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,28],[32,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Pop","A",30,2,11],["Push","A",31,2,12],["Put_node","A",32,2,13],["Reduce","C",33,2,14],["Pop","A",34,2,15],["Push","A",35,2,16],["Put_node","A",36,2,17],["Parsing_complete","A",37,2,18],["Stack","C",38,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,38],[24,22],[25,22],[26,25],[26,38],[27,25],[28,22],[29,28],[29,38],[30,28],[30,38],[31,28],[31,38],[32,22],[33,22],[34,33],[34,38],[35,33],[35,38],[36,22],[37,22],[38,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,30],[32,28],[33,32],[34,31],[35,34],[36,33],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Shift","C",25,2,6],["Push","A",26,2,7],["get_token","A",27,2,10],["Reduce","C",28,2,8],["Pop","A",29,2,9],["Pop","A",30,2,11],["Push","A",31,2,12],["Put_node","A",32,2,13],["Report_syntax_error","A",33,2,14],["Stack","C",34,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,34],[24,22],[25,22],[26,25],[26,34],[27,25],[28,22],[29,28],[29,34],[30,28],[30,34],[31,28],[31,34],[32,22],[33,22],[34,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[27,19],[28,25],[29,26],[30,29],[31,30],[32,28],[33,32]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Reduce","C",25,2,6],["Pop","A",26,2,7],["Push","A",27,2,8],["Put_node","A",28,2,9],["Shift","C",29,2,10],["Push","A",30,2,11],["get_token","A",31,2,12],["Reduce","C",32,2,13],["Pop","A",33,2,14],["Push","A",34,2,15],["Put_node","A",35,2,16],["Parsing_complete","A",36,2,17],["Stack","C",37,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,37],[24,22],[25,22],[26,25],[26,37],[27,25],[27,37],[28,22],[29,22],[30,29],[30,37],[31,29],[32,22],[33,32],[33,37],[34,32],[34,37],[35,22],[36,22],[37,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30],[31,19],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Reduce","C",25,2,6],["Pop","A",26,2,7],["Push","A",27,2,8],["Put_node","A",28,2,9],["Shift","C",29,2,10],["Push","A",30,2,11],["get_token","A",31,2,12],["Reduce","C",32,2,13],["Pop","A",33,2,14],["Pop","A",34,2,15],["Push","A",35,2,16],["Put_node","A",36,2,17],["Parsing_complete","A",37,2,18],["Stack","C",38,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,38],[24,22],[25,22],[26,25],[26,38],[27,25],[27,38],[28,22],[29,22],[30,29],[30,38],[31,29],[32,22],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,22],[37,22],[38,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30],[31,19],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["Parser","R",21,2,0],["Shift_Reduce","C",22,2,1],["Push","A",23,2,2],["get_token","A",24,2,5],["Reduce","C",25,2,6],["Pop","A",26,2,7],["Push","A",27,2,8],["Put_node","A",28,2,9],["Shift","C",29,2,10],["Push","A",30,2,11],["get_token","A",31,2,12],["Report_syntax_error","A",32,2,13],["Stack","C",33,3,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[22,21],[23,22],[23,33],[24,22],[25,22],[26,25],[26,33],[27,25],[27,33],[28,22],[29,22],[30,29],[30,33],[31,29],[32,22],[33,21]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[24,23],[24,12],[25,24],[26,23],[27,26],[28,25],[29,28],[30,27],[31,30],[31,19],[32,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Push","A",32,3,13],["Put_node","A",33,3,14],["Parsing_complete","A",34,3,15],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Pop","A",32,3,13],["Push","A",33,3,14],["Put_node","A",34,3,15],["Parsing_complete","A",35,3,16],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0748538, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Report_syntax_error","A",30,3,10],["Stack","C",31,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,31],[26,24],[27,24],[28,27],[28,31],[29,27],[30,24],[31,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Push","A",32,3,13],["Put_node","A",33,3,14],["Reduce","C",34,3,15],["Pop","A",35,3,16],["Push","A",36,3,17],["Put_node","A",37,3,18],["Parsing_complete","A",38,3,19],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[30,24],[31,30],[31,39],[32,30],[32,39],[33,24],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Push","A",32,3,13],["Put_node","A",33,3,14],["Reduce","C",34,3,15],["Pop","A",35,3,16],["Pop","A",36,3,17],["Push","A",37,3,18],["Put_node","A",38,3,19],["Parsing_complete","A",39,3,20],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,24],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Push","A",32,3,13],["Put_node","A",33,3,14],["Report_syntax_error","A",34,3,15],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Pop","A",32,3,13],["Push","A",33,3,14],["Put_node","A",34,3,15],["Reduce","C",35,3,16],["Pop","A",36,3,17],["Push","A",37,3,18],["Put_node","A",38,3,19],["Parsing_complete","A",39,3,20],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,30],[33,40],[34,24],[35,24],[36,35],[36,40],[37,35],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,10],["Pop","A",31,3,12],["Pop","A",32,3,13],["Push","A",33,3,14],["Put_node","A",34,3,15],["Report_syntax_error","A",35,3,16],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[29,39],[30,24],[31,24],[32,31],[32,39],[33,31],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[29,40],[30,24],[31,24],[32,31],[32,40],[33,31],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["RegExpr_match","C",18,2,8],["match_string","A",19,2,9],["largest_successful_match","A",20,2,10],["put_token","A",21,2,11],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,14],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[29,35],[30,24],[31,24],[32,31],[32,35],[33,31],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,18],[9,2],[11,10],[12,11],[14,7],[16,4],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Parsing_complete","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Parsing_complete","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0748538, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Report_syntax_error","A",30,3,9],["Stack","C",31,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,31],[26,24],[27,24],[28,27],[28,31],[29,27],[30,24],[31,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[30,24],[31,30],[31,39],[32,30],[32,39],[33,24],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,24],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Reduce","C",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,30],[33,40],[34,24],[35,24],[36,35],[36,40],[37,35],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Report_syntax_error","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[29,19],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[29,39],[30,24],[31,24],[32,31],[32,39],[33,31],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,19],[34,31],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[29,40],[30,24],[31,24],[32,31],[32,40],[33,31],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,19],[34,31],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,3],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",14,1,6],["RegExpr_match","C",16,1,7],["match_string","A",17,1,8],["largest_successful_match","A",18,1,9],["put_token","A",19,1,10],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,14],[5,1],[5,14],[7,6],[9,7],[10,9],[11,9],[12,9],[14,6],[16,14],[17,16],[18,16],[19,16],[20,14],[21,20],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[29,35],[30,24],[31,24],[32,31],[32,35],[33,31],[34,24],[35,23]],
+[[3,2],[3,9],[4,3],[5,4],[5,16],[5,20],[9,2],[11,10],[12,11],[14,7],[16,4],[18,17],[19,18],[20,4],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,19],[34,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Parsing_complete","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Parsing_complete","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0748538, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Report_syntax_error","A",30,3,10],["Stack","C",31,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,31],[26,24],[27,24],[28,27],[28,31],[29,27],[30,24],[31,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[30,24],[31,30],[31,39],[32,30],[32,39],[33,24],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,24],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Push","A",32,3,12],["Put_node","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Reduce","C",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,30],[33,40],[34,24],[35,24],[36,35],[36,40],[37,35],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,9],["Reduce","C",30,3,10],["Pop","A",31,3,11],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Report_syntax_error","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[29,39],[30,24],[31,24],[32,31],[32,39],[33,31],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[29,40],[30,24],[31,24],[32,31],[32,40],[33,31],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,6],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[29,35],[30,24],[31,24],[32,31],[32,35],[33,31],[34,24],[35,23]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[26,25],[26,14],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Parsing_complete","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Parsing_complete","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Report_syntax_error","A",32,3,9],["Stack","C",33,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,33],[28,26],[29,26],[30,29],[30,33],[31,29],[32,26],[33,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[32,26],[33,32],[33,41],[34,32],[34,41],[35,26],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,26],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Reduce","C",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,32],[35,42],[36,26],[37,26],[38,37],[38,42],[39,37],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,10],["Reduce","C",32,3,9],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Report_syntax_error","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[31,41],[32,26],[33,26],[34,33],[34,41],[35,33],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[31,42],[32,26],[33,26],[34,33],[34,42],[35,33],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",20,2,7],["match_string","A",21,2,8],["largest_successful_match","A",22,2,9],["put_token","A",23,2,10],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[31,37],[32,26],[33,26],[34,33],[34,37],[35,33],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,20],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Parsing_complete","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Parsing_complete","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Report_syntax_error","A",32,3,10],["Stack","C",33,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,33],[28,26],[29,26],[30,29],[30,33],[31,29],[32,26],[33,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[32,26],[33,32],[33,41],[34,32],[34,41],[35,26],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,26],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Push","A",34,3,12],["Put_node","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Reduce","C",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,32],[35,42],[36,26],[37,26],[38,37],[38,42],[39,37],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,9],["Reduce","C",32,3,10],["Pop","A",33,3,11],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Report_syntax_error","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[31,41],[32,26],[33,26],[34,33],[34,41],[35,33],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[31,42],[32,26],[33,26],[34,33],[34,42],[35,33],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,5],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["Token_recognition","C",16,1,4],["RegExpr_match","C",18,1,5],["match_string","A",19,1,6],["largest_successful_match","A",20,1,7],["put_token","A",21,1,8],["RegExpr_match","C",11,2,3],["match_string","A",12,2,4],["largest_successful_match","A",13,2,5],["put_token","A",14,2,6],["RegExpr_match","C",22,2,7],["match_string","A",23,2,8],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,7],[12,11],[13,11],[14,11],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[31,37],[32,26],[33,26],[34,33],[34,37],[35,33],[36,26],[37,25]],
+[[3,2],[3,9],[3,11],[4,3],[5,4],[5,18],[5,22],[9,2],[11,2],[13,12],[14,13],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,14],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00935673, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Parsing_complete","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Parsing_complete","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0748538, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Report_syntax_error","A",30,3,9],["Stack","C",31,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,31],[26,24],[27,24],[28,27],[28,31],[29,27],[30,24],[31,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[30,24],[31,30],[31,39],[32,30],[32,39],[33,24],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,24],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Push","A",32,3,12],["Put_node","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[30,24],[31,30],[31,35],[32,30],[32,35],[33,24],[34,24],[35,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,30],[34,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Reduce","C",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[30,24],[31,30],[31,40],[32,30],[32,40],[33,30],[33,40],[34,24],[35,24],[36,35],[36,40],[37,35],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34],[36,33],[37,36],[38,35],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Shift","C",27,3,7],["Push","A",28,3,8],["get_token","A",29,3,11],["Reduce","C",30,3,9],["Pop","A",31,3,10],["Pop","A",32,3,12],["Push","A",33,3,13],["Put_node","A",34,3,14],["Report_syntax_error","A",35,3,15],["Stack","C",36,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,36],[26,24],[27,24],[28,27],[28,36],[29,27],[30,24],[31,30],[31,36],[32,30],[32,36],[33,30],[33,36],[34,24],[35,24],[36,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[29,21],[30,27],[31,28],[32,31],[33,32],[34,30],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000584795, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Push","A",36,3,16],["Put_node","A",37,3,17],["Parsing_complete","A",38,3,18],["Stack","C",39,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,39],[26,24],[27,24],[28,27],[28,39],[29,27],[29,39],[30,24],[31,24],[32,31],[32,39],[33,31],[34,24],[35,34],[35,39],[36,34],[36,39],[37,24],[38,24],[39,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,34],[38,37]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Reduce","C",34,3,14],["Pop","A",35,3,15],["Pop","A",36,3,16],["Push","A",37,3,17],["Put_node","A",38,3,18],["Parsing_complete","A",39,3,19],["Stack","C",40,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,40],[26,24],[27,24],[28,27],[28,40],[29,27],[29,40],[30,24],[31,24],[32,31],[32,40],[33,31],[34,24],[35,34],[35,40],[36,34],[36,40],[37,34],[37,40],[38,24],[39,24],[40,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31],[35,32],[36,35],[37,36],[38,34],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,8],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["Parser","R",23,3,0],["Shift_Reduce","C",24,3,1],["Push","A",25,3,2],["get_token","A",26,3,6],["Reduce","C",27,3,7],["Pop","A",28,3,8],["Push","A",29,3,9],["Put_node","A",30,3,10],["Shift","C",31,3,11],["Push","A",32,3,12],["get_token","A",33,3,13],["Report_syntax_error","A",34,3,14],["Stack","C",35,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[24,23],[25,24],[25,35],[26,24],[27,24],[28,27],[28,35],[29,27],[29,35],[30,24],[31,24],[32,31],[32,35],[33,31],[34,24],[35,23]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[26,25],[26,12],[27,26],[28,25],[29,28],[30,27],[31,30],[32,29],[33,32],[33,21],[34,31]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Push","A",34,3,13],["Put_node","A",35,3,14],["Parsing_complete","A",36,3,15],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Parsing_complete","A",37,3,16],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Report_syntax_error","A",32,3,10],["Stack","C",33,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,33],[28,26],[29,26],[30,29],[30,33],[31,29],[32,26],[33,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Push","A",34,3,13],["Put_node","A",35,3,14],["Reduce","C",36,3,15],["Pop","A",37,3,16],["Push","A",38,3,17],["Put_node","A",39,3,18],["Parsing_complete","A",40,3,19],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[32,26],[33,32],[33,41],[34,32],[34,41],[35,26],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Push","A",34,3,13],["Put_node","A",35,3,14],["Reduce","C",36,3,15],["Pop","A",37,3,16],["Pop","A",38,3,17],["Push","A",39,3,18],["Put_node","A",40,3,19],["Parsing_complete","A",41,3,20],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,26],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Push","A",34,3,13],["Put_node","A",35,3,14],["Report_syntax_error","A",36,3,15],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Reduce","C",37,3,16],["Pop","A",38,3,17],["Push","A",39,3,18],["Put_node","A",40,3,19],["Parsing_complete","A",41,3,20],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,32],[35,42],[36,26],[37,26],[38,37],[38,42],[39,37],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,10],["Pop","A",33,3,12],["Pop","A",34,3,13],["Push","A",35,3,14],["Put_node","A",36,3,15],["Report_syntax_error","A",37,3,16],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[31,23],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[31,41],[32,26],[33,26],[34,33],[34,41],[35,33],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[31,42],[32,26],[33,26],[34,33],[34,42],[35,33],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",20,2,8],["match_string","A",21,2,9],["largest_successful_match","A",22,2,10],["put_token","A",23,2,11],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,16],[21,20],[22,20],[23,20],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[31,37],[32,26],[33,26],[34,33],[34,37],[35,33],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,20],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,4],[22,21],[23,22],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,23],[36,33]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00467836, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Push","A",34,3,12],["Put_node","A",35,3,13],["Parsing_complete","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Parsing_complete","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0374269, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Report_syntax_error","A",32,3,9],["Stack","C",33,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,33],[28,26],[29,26],[30,29],[30,33],[31,29],[32,26],[33,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[32,26],[33,32],[33,41],[34,32],[34,41],[35,26],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Push","A",34,3,12],["Put_node","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,26],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Push","A",34,3,12],["Put_node","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[32,26],[33,32],[33,37],[34,32],[34,37],[35,26],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,32],[36,35]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Reduce","C",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[32,26],[33,32],[33,42],[34,32],[34,42],[35,32],[35,42],[36,26],[37,26],[38,37],[38,42],[39,37],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36],[38,35],[39,38],[40,37],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00116959, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Shift","C",29,3,7],["Push","A",30,3,8],["get_token","A",31,3,11],["Reduce","C",32,3,9],["Pop","A",33,3,10],["Pop","A",34,3,12],["Push","A",35,3,13],["Put_node","A",36,3,14],["Report_syntax_error","A",37,3,15],["Stack","C",38,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,38],[28,26],[29,26],[30,29],[30,38],[31,29],[32,26],[33,32],[33,38],[34,32],[34,38],[35,32],[35,38],[36,26],[37,26],[38,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[31,21],[32,29],[33,30],[34,33],[35,34],[36,32],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000292398, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Push","A",38,3,16],["Put_node","A",39,3,17],["Parsing_complete","A",40,3,18],["Stack","C",41,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,41],[28,26],[29,26],[30,29],[30,41],[31,29],[31,41],[32,26],[33,26],[34,33],[34,41],[35,33],[36,26],[37,36],[37,41],[38,36],[38,41],[39,26],[40,26],[41,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33],[37,34],[38,37],[39,36],[40,39]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000146199, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Reduce","C",36,3,14],["Pop","A",37,3,15],["Pop","A",38,3,16],["Push","A",39,3,17],["Put_node","A",40,3,18],["Parsing_complete","A",41,3,19],["Stack","C",42,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,42],[28,26],[29,26],[30,29],[30,42],[31,29],[31,42],[32,26],[33,26],[34,33],[34,42],[35,33],[36,26],[37,36],[37,42],[38,36],[38,42],[39,36],[39,42],[40,26],[41,26],[42,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33],[37,34],[38,37],[39,38],[40,36],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00233918, 
+[ ["Source_code","R",1,0,0],["get_characters","A",2,0,2],["unget_some_characters","A",3,0,4],["get_characters","A",4,0,7],["unget_some_characters","A",5,0,9],["Lexer","R",6,1,0],["Token_recognition","C",7,1,1],["RegExpr_match","C",9,1,2],["match_string","A",10,1,3],["largest_successful_match","A",11,1,4],["put_token","A",12,1,5],["Token_recognition","C",16,1,6],["RegExpr_match","C",18,1,7],["match_string","A",19,1,8],["largest_successful_match","A",20,1,9],["put_token","A",21,1,10],["RegExpr_match","C",13,2,3],["match_string","A",14,2,4],["RegExpr_match","C",22,2,8],["match_string","A",23,2,9],["Parser","R",25,3,0],["Shift_Reduce","C",26,3,1],["Push","A",27,3,2],["get_token","A",28,3,6],["Reduce","C",29,3,7],["Pop","A",30,3,8],["Push","A",31,3,9],["Put_node","A",32,3,10],["Shift","C",33,3,11],["Push","A",34,3,12],["get_token","A",35,3,13],["Report_syntax_error","A",36,3,14],["Stack","C",37,4,1] ],
+
+[[2,1],[2,7],[3,1],[3,7],[4,1],[4,16],[5,1],[5,16],[7,6],[9,7],[10,9],[11,9],[12,9],[13,7],[14,13],[16,6],[18,16],[19,18],[20,18],[21,18],[22,16],[23,22],[26,25],[27,26],[27,37],[28,26],[29,26],[30,29],[30,37],[31,29],[31,37],[32,26],[33,26],[34,33],[34,37],[35,33],[36,26],[37,25]],
+[[3,2],[3,9],[3,13],[4,3],[5,4],[5,18],[5,22],[9,2],[11,10],[12,11],[13,2],[16,7],[18,4],[20,19],[21,20],[22,4],[28,27],[28,12],[29,28],[30,27],[31,30],[32,29],[33,32],[34,31],[35,34],[35,21],[36,33]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example23_number_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example23_number_attributes.json
new file mode 100644
index 0000000..2288385
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example23_number_attributes.json
@@ -0,0 +1,395 @@
+{"traces":[
+
+["U", 0.111111, 
+[ [" Trace #1","T",4,0,0],["Bought 0 items. Total purchase cost is: 0 average cost: -nan","T",5,0,1],["Buyer","R",1,1,0],["Shop_A","R",2,2,0],["Shop_B","R",3,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0555556, 
+[ [" Trace #2","T",6,0,0],["Bought 1 items. Total purchase cost is: 22 average cost: 22","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Shop_B","R",4,3,0],["Sell_Item_2","A",5,3,2] ],
+
+[[2,1],[5,4]],
+[[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0555556, 
+[ [" Trace #3","T",6,0,0],["Bought 1 items. Total purchase cost is: 30 average cost: 30","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Shop_B","R",4,3,0],["Sell_Item_3","A",5,3,2] ],
+
+[[2,1],[5,4]],
+[[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0555556, 
+[ [" Trace #4","T",6,0,0],["Bought 1 items. Total purchase cost is: 8 average cost: 8","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Sell_Item_1","A",4,2,1],["Shop_B","R",5,3,0] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0555556, 
+[ [" Trace #5","T",6,0,0],["Bought 1 items. Total purchase cost is: 20 average cost: 20","T",7,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Shop_A","R",3,2,0],["Sell_Item_2","A",4,2,1],["Shop_B","R",5,3,0] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #6","T",8,0,0],["Bought 2 items. Total purchase cost is: 44 average cost: 22","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Shop_B","R",5,3,0],["Sell_Item_2","A",6,3,2],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[6,5],[7,5]],
+[[3,2],[6,2],[7,6],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #7","T",8,0,0],["Bought 2 items. Total purchase cost is: 52 average cost: 26","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Shop_B","R",5,3,0],["Sell_Item_2","A",6,3,2],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[6,5],[7,5]],
+[[3,2],[6,2],[7,6],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #8","T",8,0,0],["Bought 2 items. Total purchase cost is: 52 average cost: 26","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Shop_B","R",5,3,0],["Sell_Item_3","A",6,3,2],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[6,5],[7,5]],
+[[3,2],[6,2],[7,6],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #9","T",8,0,0],["Bought 2 items. Total purchase cost is: 60 average cost: 30","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Shop_B","R",5,3,0],["Sell_Item_3","A",6,3,2],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[6,5],[7,5]],
+[[3,2],[6,2],[7,6],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #10","T",8,0,0],["Bought 2 items. Total purchase cost is: 30 average cost: 15","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #11","T",8,0,0],["Bought 2 items. Total purchase cost is: 38 average cost: 19","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #12","T",8,0,0],["Bought 2 items. Total purchase cost is: 42 average cost: 21","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_2","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #13","T",8,0,0],["Bought 2 items. Total purchase cost is: 50 average cost: 25","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Shop_B","R",6,3,0],["Sell_Item_3","A",7,3,3] ],
+
+[[2,1],[3,1],[5,4],[7,6]],
+[[3,2],[5,2],[7,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #14","T",8,0,0],["Bought 2 items. Total purchase cost is: 16 average cost: 8","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Sell_Item_1","A",6,2,2],["Shop_B","R",7,3,0] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #15","T",8,0,0],["Bought 2 items. Total purchase cost is: 28 average cost: 14","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_1","A",5,2,1],["Sell_Item_2","A",6,2,2],["Shop_B","R",7,3,0] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #16","T",8,0,0],["Bought 2 items. Total purchase cost is: 28 average cost: 14","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Sell_Item_1","A",6,2,2],["Shop_B","R",7,3,0] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0277778, 
+[ [" Trace #17","T",8,0,0],["Bought 2 items. Total purchase cost is: 40 average cost: 20","T",9,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Shop_A","R",4,2,0],["Sell_Item_2","A",5,2,1],["Sell_Item_2","A",6,2,2],["Shop_B","R",7,3,0] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #18","T",10,0,0],["Bought 3 items. Total purchase cost is: 52 average cost: 17.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_2","A",8,3,3],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #19","T",10,0,0],["Bought 3 items. Total purchase cost is: 60 average cost: 20","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_2","A",8,3,3],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #20","T",10,0,0],["Bought 3 items. Total purchase cost is: 60 average cost: 20","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_3","A",8,3,3],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #21","T",10,0,0],["Bought 3 items. Total purchase cost is: 68 average cost: 22.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_3","A",8,3,3],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #22","T",10,0,0],["Bought 3 items. Total purchase cost is: 64 average cost: 21.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_2","A",8,3,3],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #23","T",10,0,0],["Bought 3 items. Total purchase cost is: 72 average cost: 24","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_2","A",8,3,3],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #24","T",10,0,0],["Bought 3 items. Total purchase cost is: 72 average cost: 24","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_3","A",8,3,3],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #25","T",10,0,0],["Bought 3 items. Total purchase cost is: 80 average cost: 26.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Shop_B","R",7,3,0],["Sell_Item_3","A",8,3,3],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[8,7],[9,7]],
+[[3,2],[4,3],[6,2],[8,3],[9,8],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #26","T",10,0,0],["Bought 3 items. Total purchase cost is: 38 average cost: 12.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Sell_Item_1","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #27","T",10,0,0],["Bought 3 items. Total purchase cost is: 46 average cost: 15.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Sell_Item_1","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #28","T",10,0,0],["Bought 3 items. Total purchase cost is: 50 average cost: 16.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Sell_Item_2","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #29","T",10,0,0],["Bought 3 items. Total purchase cost is: 58 average cost: 19.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_1","A",6,2,1],["Sell_Item_2","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #30","T",10,0,0],["Bought 3 items. Total purchase cost is: 50 average cost: 16.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Sell_Item_1","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #31","T",10,0,0],["Bought 3 items. Total purchase cost is: 58 average cost: 19.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Sell_Item_1","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #32","T",10,0,0],["Bought 3 items. Total purchase cost is: 62 average cost: 20.6667","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Sell_Item_2","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_2","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0138889, 
+[ [" Trace #33","T",10,0,0],["Bought 3 items. Total purchase cost is: 70 average cost: 23.3333","T",11,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Shop_A","R",5,2,0],["Sell_Item_2","A",6,2,1],["Sell_Item_2","A",7,2,2],["Shop_B","R",8,3,0],["Sell_Item_3","A",9,3,4] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[9,8]],
+[[3,2],[4,3],[6,2],[7,6],[7,3],[9,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #34","T",12,0,0],["Bought 4 items. Total purchase cost is: 60 average cost: 15","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #35","T",12,0,0],["Bought 4 items. Total purchase cost is: 68 average cost: 17","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #36","T",12,0,0],["Bought 4 items. Total purchase cost is: 68 average cost: 17","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #37","T",12,0,0],["Bought 4 items. Total purchase cost is: 76 average cost: 19","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #38","T",12,0,0],["Bought 4 items. Total purchase cost is: 72 average cost: 18","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #39","T",12,0,0],["Bought 4 items. Total purchase cost is: 80 average cost: 20","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #40","T",12,0,0],["Bought 4 items. Total purchase cost is: 80 average cost: 20","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #41","T",12,0,0],["Bought 4 items. Total purchase cost is: 88 average cost: 22","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_1","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #42","T",12,0,0],["Bought 4 items. Total purchase cost is: 72 average cost: 18","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #43","T",12,0,0],["Bought 4 items. Total purchase cost is: 80 average cost: 20","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #44","T",12,0,0],["Bought 4 items. Total purchase cost is: 80 average cost: 20","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #45","T",12,0,0],["Bought 4 items. Total purchase cost is: 88 average cost: 22","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_1","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #46","T",12,0,0],["Bought 4 items. Total purchase cost is: 84 average cost: 21","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #47","T",12,0,0],["Bought 4 items. Total purchase cost is: 92 average cost: 23","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_2","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #48","T",12,0,0],["Bought 4 items. Total purchase cost is: 92 average cost: 23","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_2","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00694444, 
+[ [" Trace #49","T",12,0,0],["Bought 4 items. Total purchase cost is: 100 average cost: 25","T",13,0,1],["Buyer","R",1,1,0],["Buy","A",2,1,1],["Buy","A",3,1,2],["Buy","A",4,1,3],["Buy","A",5,1,4],["Shop_A","R",6,2,0],["Sell_Item_2","A",7,2,1],["Sell_Item_2","A",8,2,2],["Shop_B","R",9,3,0],["Sell_Item_3","A",10,3,4],["Sell_Item_3","A",11,3,5] ],
+
+[[2,1],[3,1],[4,1],[5,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,2],[4,3],[5,4],[7,2],[8,7],[8,3],[10,4],[11,10],[11,5]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example24_Bayesian_probability.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example24_Bayesian_probability.json
new file mode 100644
index 0000000..0430a1d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example24_Bayesian_probability.json
@@ -0,0 +1,59 @@
+{"traces":[
+
+["U", 0.142857, 
+[ ["Probability of result RRR was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Red","A",3,1,2],["Select_Red","A",4,1,3],["RRR","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Red","A",3,1,2],["Select_Green","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Green","A",3,1,2],["Select_Red","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Red","A",2,1,1],["Select_Green","A",3,1,2],["Select_Green","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RRG was 0.2","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Red","A",3,1,2],["Select_Red","A",4,1,3],["RRG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Red","A",3,1,2],["Select_Green","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["Probability of result RGG was 0.1","T",6,0,0],["Selection","R",1,1,0],["Select_Green","A",2,1,1],["Select_Green","A",3,1,2],["Select_Red","A",4,1,3],["RGG","A",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example25_interval_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example25_interval_attributes.json
new file mode 100644
index 0000000..d069ca5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example25_interval_attributes.json
@@ -0,0 +1,43 @@
+{"traces":[
+
+["U", 0.285714, 
+[ ["selected 1 items","T",4,0,0],["backpack weight is within interval [2 .. 5]","T",5,0,1],["Backpack","R",1,1,0],["item1","C",2,1,1],["selected item1 with weight [2 .. 5]","T",3,1,2] ],
+
+[[2,1],[3,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.285714, 
+[ ["selected 1 items","T",4,0,0],["backpack weight is within interval [10 .. 16]","T",5,0,1],["Backpack","R",1,1,0],["item2","C",2,1,1],["selected item2 with weight [10 .. 16]","T",3,1,2] ],
+
+[[2,1],[3,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["selected 2 items","T",6,0,0],["backpack weight is within interval [4 .. 10]","T",7,0,1],["Backpack","R",1,1,0],["item1","C",2,1,1],["item1","C",3,1,2],["selected item1 with weight [2 .. 5]","T",4,1,3],["selected item1 with weight [2 .. 5]","T",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["selected 2 items","T",6,0,0],["backpack weight is within interval [12 .. 21]","T",7,0,1],["Backpack","R",1,1,0],["item1","C",2,1,1],["item2","C",3,1,2],["selected item1 with weight [2 .. 5]","T",4,1,3],["selected item2 with weight [10 .. 16]","T",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.142857, 
+[ ["selected 2 items","T",6,0,0],["backpack weight is within interval [12 .. 21]","T",7,0,1],["Backpack","R",1,1,0],["item2","C",2,1,1],["item1","C",3,1,2],["selected item2 with weight [10 .. 16]","T",4,1,3],["selected item1 with weight [2 .. 5]","T",5,1,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example26_timing_attributes.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example26_timing_attributes.json
new file mode 100644
index 0000000..3ef92a4
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example26_timing_attributes.json
@@ -0,0 +1,99 @@
+{"traces":[
+
+["U", 0.25, 
+[ ["   Worker start 0 duration 1 end 1","T",3,0,0],["   Work start 0 duration 1 end 1","T",4,0,1],["  Delay created by 0 visitors is 0","T",5,0,2],["Worker","R",1,1,0],["Work","C",2,1,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["   Worker start 0 duration [2 .. 3] end [2 .. 3]","T",4,0,0],["   Get_distracted start 0 duration [2 .. 3] end [2 .. 3]","T",5,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",6,0,2],["  Delay created by 1 visitors is [2 .. 3]","T",7,0,3],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2] ],
+
+[[2,1],[3,2]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["   Worker start 0 duration [4 .. 6] end [4 .. 6]","T",5,0,0],["   Get_distracted start 0 duration [4 .. 6] end [4 .. 6]","T",6,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",7,0,2],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",8,0,3],["  Delay created by 2 visitors is [4 .. 6]","T",9,0,4],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Visitor","C",4,1,3] ],
+
+[[2,1],[3,2],[4,2]],
+[[4,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.125, 
+[ ["   Worker start 0 duration 2 end 2","T",4,0,0],["   Work start 0 duration 1 end 1","T",5,0,1],["   Work start 1 duration 1 end 2","T",6,0,2],["  Delay created by 0 visitors is 0","T",7,0,3],["Worker","R",1,1,0],["Work","C",2,1,1],["Work","C",3,1,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ ["   Worker start 0 duration [3 .. 4] end [3 .. 4]","T",5,0,0],["   Work start 0 duration 1 end 1","T",6,0,1],["   Get_distracted start 1 duration [2 .. 3] end [3 .. 4]","T",7,0,2],["   Visitor start 1 duration [2 .. 3] end [3 .. 4]","T",8,0,3],["  Delay created by 1 visitors is [2 .. 3]","T",9,0,4],["Worker","R",1,1,0],["Work","C",2,1,1],["Get_distracted","C",3,1,2],["Visitor","C",4,1,3] ],
+
+[[2,1],[3,1],[4,3]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ ["   Worker start 0 duration [5 .. 7] end [5 .. 7]","T",6,0,0],["   Work start 0 duration 1 end 1","T",7,0,1],["   Get_distracted start 1 duration [4 .. 6] end [5 .. 7]","T",8,0,2],["   Visitor start 1 duration [2 .. 3] end [3 .. 4]","T",9,0,3],["   Visitor start [3 .. 4] duration [2 .. 3] end [5 .. 7]","T",10,0,4],["  Delay created by 2 visitors is [4 .. 6]","T",11,0,5],["Worker","R",1,1,0],["Work","C",2,1,1],["Get_distracted","C",3,1,2],["Visitor","C",4,1,3],["Visitor","C",5,1,4] ],
+
+[[2,1],[3,1],[4,3],[5,3]],
+[[3,2],[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ ["   Worker start 0 duration [3 .. 4] end [3 .. 4]","T",5,0,0],["   Get_distracted start 0 duration [2 .. 3] end [2 .. 3]","T",6,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",7,0,2],["   Work start [2 .. 3] duration 1 end [3 .. 4]","T",8,0,3],["  Delay created by 1 visitors is [2 .. 3]","T",9,0,4],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Work","C",4,1,3] ],
+
+[[2,1],[3,2],[4,1]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.03125, 
+[ ["   Worker start 0 duration [4 .. 6] end [4 .. 6]","T",6,0,0],["   Get_distracted start 0 duration [2 .. 3] end [2 .. 3]","T",7,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",8,0,2],["   Get_distracted start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",9,0,3],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",10,0,4],["  Delay created by 2 visitors is [4 .. 6]","T",11,0,5],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Get_distracted","C",4,1,3],["Visitor","C",5,1,4] ],
+
+[[2,1],[3,2],[4,1],[5,4]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.03125, 
+[ ["   Worker start 0 duration [6 .. 9] end [6 .. 9]","T",7,0,0],["   Get_distracted start 0 duration [2 .. 3] end [2 .. 3]","T",8,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",9,0,2],["   Get_distracted start [2 .. 3] duration [4 .. 6] end [6 .. 9]","T",10,0,3],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",11,0,4],["   Visitor start [4 .. 6] duration [2 .. 3] end [6 .. 9]","T",12,0,5],["  Delay created by 3 visitors is [6 .. 9]","T",13,0,6],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Get_distracted","C",4,1,3],["Visitor","C",5,1,4],["Visitor","C",6,1,5] ],
+
+[[2,1],[3,2],[4,1],[5,4],[6,4]],
+[[4,2],[6,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0625, 
+[ ["   Worker start 0 duration [5 .. 7] end [5 .. 7]","T",6,0,0],["   Get_distracted start 0 duration [4 .. 6] end [4 .. 6]","T",7,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",8,0,2],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",9,0,3],["   Work start [4 .. 6] duration 1 end [5 .. 7]","T",10,0,4],["  Delay created by 2 visitors is [4 .. 6]","T",11,0,5],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Visitor","C",4,1,3],["Work","C",5,1,4] ],
+
+[[2,1],[3,2],[4,2],[5,1]],
+[[4,3],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.03125, 
+[ ["   Worker start 0 duration [6 .. 9] end [6 .. 9]","T",7,0,0],["   Get_distracted start 0 duration [4 .. 6] end [4 .. 6]","T",8,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",9,0,2],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",10,0,3],["   Get_distracted start [4 .. 6] duration [2 .. 3] end [6 .. 9]","T",11,0,4],["   Visitor start [4 .. 6] duration [2 .. 3] end [6 .. 9]","T",12,0,5],["  Delay created by 3 visitors is [6 .. 9]","T",13,0,6],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Visitor","C",4,1,3],["Get_distracted","C",5,1,4],["Visitor","C",6,1,5] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5]],
+[[4,3],[5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.03125, 
+[ ["   Worker start 0 duration [8 .. 12] end [8 .. 12]","T",8,0,0],["   Get_distracted start 0 duration [4 .. 6] end [4 .. 6]","T",9,0,1],["   Visitor start 0 duration [2 .. 3] end [2 .. 3]","T",10,0,2],["   Visitor start [2 .. 3] duration [2 .. 3] end [4 .. 6]","T",11,0,3],["   Get_distracted start [4 .. 6] duration [4 .. 6] end [8 .. 12]","T",12,0,4],["   Visitor start [4 .. 6] duration [2 .. 3] end [6 .. 9]","T",13,0,5],["   Visitor start [6 .. 9] duration [2 .. 3] end [8 .. 12]","T",14,0,6],["  Delay created by 4 visitors is [8 .. 12]","T",15,0,7],["Worker","R",1,1,0],["Get_distracted","C",2,1,1],["Visitor","C",3,1,2],["Visitor","C",4,1,3],["Get_distracted","C",5,1,4],["Visitor","C",6,1,5],["Visitor","C",7,1,6] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5]],
+[[4,3],[5,2],[7,6]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example27_Railroad_Crossing.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example27_Railroad_Crossing.json
new file mode 100644
index 0000000..4b6155e
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example27_Railroad_Crossing.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 0.5, 
+[ ["Bar moved down by 5","T",12,0,0],["Train starts go through crossing at 5","T",13,0,1],["Train ends go through crossing at 15","T",14,0,2],["Bar starts go up at 15","T",15,0,3],["Crossing was successfully closed","T",16,0,4],["Train","R",1,1,0],["Enter_Restricted_Region","A",2,1,1],["Goes_through_Restricted_Region","A",3,1,2],["Enter_Crossing_Region","A",4,1,3],["Goes_through_Crossing_Region","C",5,1,4],["Leaves_Crossing_Region","A",6,1,5],["Crossing","R",7,2,0],["Move_Down","C",8,2,1],["Down","A",9,2,2],["Move_Up","C",10,2,5],["Up","A",11,2,6] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[11,7]],
+[[3,2],[4,3],[4,9],[5,4],[6,5],[8,2],[9,8],[10,9],[10,6],[11,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.5, 
+[ ["Bar moved down by 5","T",21,0,0],["Train starts go through crossing at 5","T",22,0,1],["Train ends go through crossing at 15","T",23,0,2],["Bar starts go up at 15","T",24,0,3],["Crossing was successfully closed","T",25,0,4],["Bar moved down by 22","T",26,0,5],["Train starts go through crossing at 22","T",27,0,6],["Train ends go through crossing at 32","T",28,0,7],["Bar starts go up at 32","T",29,0,8],["Crossing was successfully closed","T",30,0,9],["Train","R",1,1,0],["Enter_Restricted_Region","A",2,1,1],["Goes_through_Restricted_Region","A",3,1,2],["Enter_Crossing_Region","A",4,1,3],["Goes_through_Crossing_Region","C",5,1,4],["Leaves_Crossing_Region","A",6,1,5],["Enter_Restricted_Region","A",7,1,6],["Goes_through_Restricted_Region","A",8,1,7],["Enter_Crossing_Region","A",9,1,8],["Goes_through_Crossing_Region","C",10,1,9],["Leaves_Crossing_Region","A",11,1,10],["Crossing","R",12,2,0],["Move_Down","C",13,2,1],["Down","A",14,2,2],["Move_Up","C",15,2,5],["Up","A",16,2,6],["Move_Down","C",17,2,7],["Down","A",18,2,8],["Move_Up","C",19,2,10],["Up","A",20,2,11] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[13,12],[14,12],[15,12],[16,12],[17,12],[18,12],[19,12],[20,12]],
+[[3,2],[4,3],[4,14],[5,4],[6,5],[7,6],[8,7],[9,8],[9,18],[10,9],[11,10],[13,2],[14,13],[15,14],[15,6],[16,15],[17,16],[17,7],[18,17],[19,18],[19,11],[20,19]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example28_MP_model_of_MP_architecture.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example28_MP_model_of_MP_architecture.json
new file mode 100644
index 0000000..efed25d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example28_MP_model_of_MP_architecture.json
@@ -0,0 +1,2183 @@
+{"traces":[
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #1","T",26,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["end_of_session","A",5,1,11],["MP_code_editor","R",6,2,0],["MP_GUI","R",8,3,0],["input_MP_code","A",10,3,3],["receive_json_file","A",11,3,8],["visualize_trace","A",12,3,9],["MP_parser","R",13,4,0],["perform_syntax_analysis","A",15,4,3],["write_abstract_syntax_tree","A",16,4,4],["Abstract_syntax_tree","R",17,5,0],["read_abstract_syntax_tree","A",19,5,4],["Trace_generator","R",20,6,0],["generate_Cpp_file","A",22,6,4],["run_Cpp_compiler","A",23,6,5],["run_executable","A",24,6,6],["produce_json_file","A",25,6,7] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[5,1],[10,8],[10,13],[11,8],[12,8],[15,13],[16,13],[16,17],[19,17],[19,20],[22,20],[23,20],[24,20],[25,20]],
+[[3,2],[4,3],[4,12],[5,4],[10,3],[11,10],[11,25],[12,11],[15,10],[16,15],[19,16],[22,19],[23,22],[24,23],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #2","T",28,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",11,3,3],["receive_json_file","A",12,3,8],["visualize_trace","A",13,3,9],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,3],["write_abstract_syntax_tree","A",18,4,4],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,4],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,4],["run_Cpp_compiler","A",25,6,5],["run_executable","A",26,6,6],["produce_json_file","A",27,6,7] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[5,1],[5,9],[6,1],[11,9],[11,15],[12,9],[13,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,13],[5,4],[5,13],[6,5],[11,3],[12,11],[12,27],[13,12],[17,11],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #3","T",18,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["end_of_session","A",5,1,5],["MP_code_editor","R",6,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",8,4,0],["input_MP_code","A",10,4,3],["MP_parser","R",12,5,0],["perform_syntax_analysis","A",14,5,3],["Abstract_syntax_tree","R",16,6,0],["Trace_generator","R",17,7,0] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[4,12],[4,8],[5,1],[10,8],[10,12],[14,12]],
+[[3,2],[4,3],[4,14],[4,10],[5,4],[10,3],[14,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #4","T",20,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",9,4,0],["input_MP_code","A",11,4,3],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,3],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[4,14],[4,9],[5,1],[5,9],[6,1],[11,9],[11,14],[16,14]],
+[[3,2],[4,3],[4,16],[4,11],[5,4],[6,5],[11,3],[16,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #5","T",26,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["end_of_session","A",5,1,11],["MP_code_editor","R",6,2,0],["MP_GUI","R",8,3,0],["input_MP_code","A",10,3,3],["receive_json_file","A",11,3,8],["visualize_trace","A",12,3,9],["MP_parser","R",13,4,0],["perform_syntax_analysis","A",15,4,3],["write_abstract_syntax_tree","A",16,4,4],["Abstract_syntax_tree","R",17,5,0],["read_abstract_syntax_tree","A",19,5,4],["Trace_generator","R",20,6,0],["generate_Cpp_file","A",22,6,4],["run_Cpp_compiler","A",23,6,5],["run_executable","A",24,6,6],["produce_json_file","A",25,6,7] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[5,1],[10,8],[10,13],[11,8],[12,8],[15,13],[16,13],[16,17],[19,17],[19,20],[22,20],[23,20],[24,20],[25,20]],
+[[3,2],[4,3],[4,12],[5,4],[10,3],[11,10],[11,25],[12,11],[15,10],[16,15],[19,16],[22,19],[23,22],[24,23],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #6","T",28,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",11,3,3],["receive_json_file","A",12,3,8],["visualize_trace","A",13,3,9],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,3],["write_abstract_syntax_tree","A",18,4,4],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,4],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,4],["run_Cpp_compiler","A",25,6,5],["run_executable","A",26,6,6],["produce_json_file","A",27,6,7] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[5,1],[5,9],[6,1],[11,9],[11,15],[12,9],[13,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,13],[5,4],[5,13],[6,5],[11,3],[12,11],[12,27],[13,12],[17,11],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #7","T",18,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["end_of_session","A",5,1,5],["MP_code_editor","R",6,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",8,4,0],["input_MP_code","A",10,4,3],["MP_parser","R",12,5,0],["perform_syntax_analysis","A",14,5,3],["Abstract_syntax_tree","R",16,6,0],["Trace_generator","R",17,7,0] ],
+
+[[2,1],[2,6],[3,1],[3,8],[4,1],[4,12],[4,8],[5,1],[10,8],[10,12],[14,12]],
+[[3,2],[4,3],[4,14],[4,10],[5,4],[10,3],[14,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #8","T",20,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",9,4,0],["input_MP_code","A",11,4,3],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,3],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,7],[3,1],[3,9],[4,1],[4,14],[4,9],[5,1],[5,9],[6,1],[11,9],[11,14],[16,14]],
+[[3,2],[4,3],[4,16],[4,11],[5,4],[6,5],[11,3],[16,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #9","T",28,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",12,3,4],["receive_json_file","A",13,3,9],["visualize_trace","A",14,3,10],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,4],["write_abstract_syntax_tree","A",18,4,5],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,5],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,5],["run_Cpp_compiler","A",25,6,6],["run_executable","A",26,6,7],["produce_json_file","A",27,6,8] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[6,1],[12,9],[12,15],[13,9],[14,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,2],[5,4],[5,14],[6,5],[12,4],[13,12],[13,27],[14,13],[17,12],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #10","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["end_of_session","A",7,1,13],["MP_code_editor","R",8,2,0],["MP_GUI","R",10,3,0],["input_MP_code","A",13,3,4],["receive_json_file","A",14,3,9],["visualize_trace","A",15,3,10],["MP_parser","R",17,4,0],["perform_syntax_analysis","A",19,4,4],["write_abstract_syntax_tree","A",20,4,5],["Abstract_syntax_tree","R",21,5,0],["read_abstract_syntax_tree","A",23,5,5],["Trace_generator","R",24,6,0],["generate_Cpp_file","A",26,6,5],["run_Cpp_compiler","A",27,6,6],["run_executable","A",28,6,7],["produce_json_file","A",29,6,8] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[6,1],[6,10],[7,1],[13,10],[13,17],[14,10],[15,10],[19,17],[20,17],[20,21],[23,21],[23,24],[26,24],[27,24],[28,24],[29,24]],
+[[3,2],[4,3],[4,2],[5,4],[5,15],[6,5],[6,15],[7,6],[13,4],[14,13],[14,29],[15,14],[19,13],[20,19],[23,20],[26,23],[27,26],[28,27],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #11","T",20,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",9,4,0],["input_MP_code","A",12,4,4],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,4],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[5,14],[5,9],[6,1],[12,9],[12,14],[16,14]],
+[[3,2],[4,3],[4,2],[5,4],[5,16],[5,12],[6,5],[12,4],[16,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #12","T",22,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["end_of_session","A",7,1,7],["MP_code_editor","R",8,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",10,4,0],["input_MP_code","A",13,4,4],["MP_parser","R",16,5,0],["perform_syntax_analysis","A",18,5,4],["Abstract_syntax_tree","R",20,6,0],["Trace_generator","R",21,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[5,16],[5,10],[6,1],[6,10],[7,1],[13,10],[13,16],[18,16]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[5,13],[6,5],[7,6],[13,4],[18,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #13","T",28,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["end_of_session","A",6,1,12],["MP_code_editor","R",7,2,0],["MP_GUI","R",9,3,0],["input_MP_code","A",12,3,4],["receive_json_file","A",13,3,9],["visualize_trace","A",14,3,10],["MP_parser","R",15,4,0],["perform_syntax_analysis","A",17,4,4],["write_abstract_syntax_tree","A",18,4,5],["Abstract_syntax_tree","R",19,5,0],["read_abstract_syntax_tree","A",21,5,5],["Trace_generator","R",22,6,0],["generate_Cpp_file","A",24,6,5],["run_Cpp_compiler","A",25,6,6],["run_executable","A",26,6,7],["produce_json_file","A",27,6,8] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[6,1],[12,9],[12,15],[13,9],[14,9],[17,15],[18,15],[18,19],[21,19],[21,22],[24,22],[25,22],[26,22],[27,22]],
+[[3,2],[4,3],[4,2],[5,4],[5,14],[6,5],[12,4],[13,12],[13,27],[14,13],[17,12],[18,17],[21,18],[24,21],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #14","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["end_of_session","A",7,1,13],["MP_code_editor","R",8,2,0],["MP_GUI","R",10,3,0],["input_MP_code","A",13,3,4],["receive_json_file","A",14,3,9],["visualize_trace","A",15,3,10],["MP_parser","R",17,4,0],["perform_syntax_analysis","A",19,4,4],["write_abstract_syntax_tree","A",20,4,5],["Abstract_syntax_tree","R",21,5,0],["read_abstract_syntax_tree","A",23,5,5],["Trace_generator","R",24,6,0],["generate_Cpp_file","A",26,6,5],["run_Cpp_compiler","A",27,6,6],["run_executable","A",28,6,7],["produce_json_file","A",29,6,8] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[6,1],[6,10],[7,1],[13,10],[13,17],[14,10],[15,10],[19,17],[20,17],[20,21],[23,21],[23,24],[26,24],[27,24],[28,24],[29,24]],
+[[3,2],[4,3],[4,2],[5,4],[5,15],[6,5],[6,15],[7,6],[13,4],[14,13],[14,29],[15,14],[19,13],[20,19],[23,20],[26,23],[27,26],[28,27],[29,28]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #15","T",20,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["end_of_session","A",6,1,6],["MP_code_editor","R",7,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",9,4,0],["input_MP_code","A",12,4,4],["MP_parser","R",14,5,0],["perform_syntax_analysis","A",16,5,4],["Abstract_syntax_tree","R",18,6,0],["Trace_generator","R",19,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,7],[4,1],[4,9],[5,1],[5,14],[5,9],[6,1],[12,9],[12,14],[16,14]],
+[[3,2],[4,3],[4,2],[5,4],[5,16],[5,12],[6,5],[12,4],[16,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.060606, 
+[ [" Scope 2 Trace #16","T",22,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["end_of_session","A",7,1,7],["MP_code_editor","R",8,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",10,4,0],["input_MP_code","A",13,4,4],["MP_parser","R",16,5,0],["perform_syntax_analysis","A",18,5,4],["Abstract_syntax_tree","R",20,6,0],["Trace_generator","R",21,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,8],[4,1],[4,10],[5,1],[5,16],[5,10],[6,1],[6,10],[7,1],[13,10],[13,16],[18,16]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[5,13],[6,5],[7,6],[13,4],[18,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #17","T",44,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["end_of_session","A",8,1,21],["MP_code_editor","R",9,2,0],["MP_GUI","R",12,3,0],["input_MP_code","A",14,3,3],["receive_json_file","A",15,3,8],["visualize_trace","A",16,3,9],["input_MP_code","A",18,3,13],["receive_json_file","A",19,3,18],["visualize_trace","A",20,3,19],["MP_parser","R",21,4,0],["perform_syntax_analysis","A",23,4,3],["write_abstract_syntax_tree","A",24,4,4],["perform_syntax_analysis","A",26,4,13],["write_abstract_syntax_tree","A",27,4,14],["Abstract_syntax_tree","R",28,5,0],["read_abstract_syntax_tree","A",30,5,4],["read_abstract_syntax_tree","A",32,5,14],["Trace_generator","R",33,6,0],["generate_Cpp_file","A",35,6,4],["run_Cpp_compiler","A",36,6,5],["run_executable","A",37,6,6],["produce_json_file","A",38,6,7],["generate_Cpp_file","A",40,6,14],["run_Cpp_compiler","A",41,6,15],["run_executable","A",42,6,16],["produce_json_file","A",43,6,17] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,21],[15,12],[16,12],[18,12],[18,21],[19,12],[20,12],[23,21],[24,21],[24,28],[26,21],[27,21],[27,28],[30,28],[30,33],[32,28],[32,33],[35,33],[36,33],[37,33],[38,33],[40,33],[41,33],[42,33],[43,33]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,20],[8,7],[14,3],[15,14],[15,38],[16,15],[18,6],[18,24],[18,6],[19,18],[19,43],[20,19],[23,14],[24,23],[26,18],[27,26],[27,30],[30,24],[32,27],[32,38],[35,30],[36,35],[37,36],[38,37],[40,32],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #18","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["save_MP_file","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",19,3,13],["receive_json_file","A",20,3,18],["visualize_trace","A",21,3,19],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,13],["write_abstract_syntax_tree","A",29,4,14],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,14],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,14],["run_Cpp_compiler","A",43,6,15],["run_executable","A",44,6,16],["produce_json_file","A",45,6,17] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,23],[16,13],[17,13],[19,13],[19,23],[20,13],[21,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,21],[8,7],[8,21],[9,8],[15,3],[16,15],[16,40],[17,16],[19,6],[19,26],[19,6],[20,19],[20,45],[21,20],[25,15],[26,25],[28,19],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #19","T",36,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["receive_json_file","A",15,4,8],["visualize_trace","A",16,4,9],["input_MP_code","A",18,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["write_abstract_syntax_tree","A",23,5,4],["perform_syntax_analysis","A",25,5,13],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,4],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,4],["run_Cpp_compiler","A",33,7,5],["run_executable","A",34,7,6],["produce_json_file","A",35,7,7] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[7,20],[7,12],[8,1],[14,12],[14,20],[15,12],[16,12],[18,12],[18,20],[22,20],[23,20],[23,27],[25,20],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,25],[7,18],[8,7],[14,3],[15,14],[15,35],[16,15],[18,6],[18,23],[18,6],[22,14],[23,22],[25,18],[29,23],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #20","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",19,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,13],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[7,22],[7,13],[8,1],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[19,13],[19,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,27],[7,19],[8,7],[9,8],[15,3],[16,15],[16,37],[17,16],[19,6],[19,25],[19,6],[24,15],[25,24],[27,19],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #21","T",44,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["end_of_session","A",8,1,21],["MP_code_editor","R",9,2,0],["MP_GUI","R",12,3,0],["input_MP_code","A",14,3,3],["receive_json_file","A",15,3,8],["visualize_trace","A",16,3,9],["input_MP_code","A",18,3,13],["receive_json_file","A",19,3,18],["visualize_trace","A",20,3,19],["MP_parser","R",21,4,0],["perform_syntax_analysis","A",23,4,3],["write_abstract_syntax_tree","A",24,4,4],["perform_syntax_analysis","A",26,4,13],["write_abstract_syntax_tree","A",27,4,14],["Abstract_syntax_tree","R",28,5,0],["read_abstract_syntax_tree","A",30,5,4],["read_abstract_syntax_tree","A",32,5,14],["Trace_generator","R",33,6,0],["generate_Cpp_file","A",35,6,4],["run_Cpp_compiler","A",36,6,5],["run_executable","A",37,6,6],["produce_json_file","A",38,6,7],["generate_Cpp_file","A",40,6,14],["run_Cpp_compiler","A",41,6,15],["run_executable","A",42,6,16],["produce_json_file","A",43,6,17] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,21],[15,12],[16,12],[18,12],[18,21],[19,12],[20,12],[23,21],[24,21],[24,28],[26,21],[27,21],[27,28],[30,28],[30,33],[32,28],[32,33],[35,33],[36,33],[37,33],[38,33],[40,33],[41,33],[42,33],[43,33]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,20],[8,7],[14,3],[15,14],[15,38],[16,15],[18,6],[18,24],[18,6],[19,18],[19,43],[20,19],[23,14],[24,23],[26,18],[27,26],[27,30],[30,24],[32,27],[32,38],[35,30],[36,35],[37,36],[38,37],[40,32],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #22","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["save_MP_file","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",19,3,13],["receive_json_file","A",20,3,18],["visualize_trace","A",21,3,19],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,13],["write_abstract_syntax_tree","A",29,4,14],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,14],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,14],["run_Cpp_compiler","A",43,6,15],["run_executable","A",44,6,16],["produce_json_file","A",45,6,17] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,23],[16,13],[17,13],[19,13],[19,23],[20,13],[21,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,21],[8,7],[8,21],[9,8],[15,3],[16,15],[16,40],[17,16],[19,6],[19,26],[19,6],[20,19],[20,45],[21,20],[25,15],[26,25],[28,19],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #23","T",36,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["receive_json_file","A",15,4,8],["visualize_trace","A",16,4,9],["input_MP_code","A",18,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["write_abstract_syntax_tree","A",23,5,4],["perform_syntax_analysis","A",25,5,13],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,4],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,4],["run_Cpp_compiler","A",33,7,5],["run_executable","A",34,7,6],["produce_json_file","A",35,7,7] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[7,20],[7,12],[8,1],[14,12],[14,20],[15,12],[16,12],[18,12],[18,20],[22,20],[23,20],[23,27],[25,20],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,25],[7,18],[8,7],[14,3],[15,14],[15,35],[16,15],[18,6],[18,23],[18,6],[22,14],[23,22],[25,18],[29,23],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #24","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",19,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,13],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[7,22],[7,13],[8,1],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[19,13],[19,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,27],[7,19],[8,7],[9,8],[15,3],[16,15],[16,37],[17,16],[19,6],[19,25],[19,6],[24,15],[25,24],[27,19],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #25","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #26","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #27","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #28","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #29","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #30","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #31","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #32","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #33","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #34","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #35","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #36","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #37","T",46,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #38","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #39","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #40","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #41","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,25],[17,14],[18,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[16,3],[17,16],[17,42],[18,17],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,16],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #42","T",50,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",17,3,3],["receive_json_file","A",18,3,8],["visualize_trace","A",19,3,9],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,3],["write_abstract_syntax_tree","A",30,4,4],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,4],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,4],["run_Cpp_compiler","A",42,6,5],["run_executable","A",43,6,6],["produce_json_file","A",44,6,7],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,27],[18,15],[19,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[17,3],[18,17],[18,44],[19,18],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,17],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #43","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[16,3],[17,16],[17,39],[18,17],[22,8],[22,27],[22,8],[26,16],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #44","T",42,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["receive_json_file","A",18,4,8],["visualize_trace","A",19,4,9],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["write_abstract_syntax_tree","A",29,5,4],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,4],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,4],["run_Cpp_compiler","A",39,7,5],["run_executable","A",40,7,6],["produce_json_file","A",41,7,7] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[17,15],[17,26],[18,15],[19,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[17,3],[18,17],[18,41],[19,18],[23,8],[23,29],[23,8],[28,17],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #45","T",48,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,25],[17,14],[18,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[16,3],[17,16],[17,42],[18,17],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,16],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #46","T",50,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",17,3,3],["receive_json_file","A",18,3,8],["visualize_trace","A",19,3,9],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,3],["write_abstract_syntax_tree","A",30,4,4],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,4],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,4],["run_Cpp_compiler","A",42,6,5],["run_executable","A",43,6,6],["produce_json_file","A",44,6,7],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,27],[18,15],[19,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[17,3],[18,17],[18,44],[19,18],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,17],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #47","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[16,3],[17,16],[17,39],[18,17],[22,8],[22,27],[22,8],[26,16],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #48","T",42,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["receive_json_file","A",18,4,8],["visualize_trace","A",19,4,9],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["write_abstract_syntax_tree","A",29,5,4],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,4],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,4],["run_Cpp_compiler","A",39,7,5],["run_executable","A",40,7,6],["produce_json_file","A",41,7,7] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[17,15],[17,26],[18,15],[19,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[17,3],[18,17],[18,41],[19,18],[23,8],[23,29],[23,8],[28,17],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #49","T",36,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["receive_json_file","A",18,4,12],["visualize_trace","A",19,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["perform_syntax_analysis","A",25,5,7],["write_abstract_syntax_tree","A",26,5,8],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,8],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,8],["run_Cpp_compiler","A",33,7,9],["run_executable","A",34,7,10],["produce_json_file","A",35,7,11] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,20],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,20],[17,12],[17,20],[18,12],[19,12],[22,20],[25,20],[26,20],[26,27],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,22],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,19],[8,7],[14,3],[17,6],[17,4],[17,6],[18,17],[18,35],[19,18],[22,14],[25,17],[26,25],[29,26],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #50","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["receive_json_file","A",19,4,12],["visualize_trace","A",20,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,7],["write_abstract_syntax_tree","A",28,5,8],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,8],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,8],["run_Cpp_compiler","A",35,7,9],["run_executable","A",36,7,10],["produce_json_file","A",37,7,11] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,22],[18,13],[18,22],[19,13],[20,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,20],[8,7],[8,20],[9,8],[15,3],[18,6],[18,4],[18,6],[19,18],[19,37],[20,19],[24,15],[27,18],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #51","T",28,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["end_of_session","A",8,1,9],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["MP_parser","R",19,5,0],["perform_syntax_analysis","A",21,5,3],["perform_syntax_analysis","A",24,5,7],["Abstract_syntax_tree","R",26,6,0],["Trace_generator","R",27,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,19],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[7,19],[7,12],[8,1],[14,12],[14,19],[17,12],[17,19],[21,19],[24,19]],
+[[3,2],[4,3],[4,21],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,24],[7,17],[8,7],[14,3],[17,6],[17,4],[17,6],[21,14],[24,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #52","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["save_MP_file","A",8,1,9],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,7],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[7,21],[7,13],[8,1],[8,13],[9,1],[15,13],[15,21],[18,13],[18,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,26],[7,18],[8,7],[9,8],[15,3],[18,6],[18,4],[18,6],[23,15],[26,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #53","T",36,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["receive_json_file","A",18,4,12],["visualize_trace","A",19,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["perform_syntax_analysis","A",25,5,7],["write_abstract_syntax_tree","A",26,5,8],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,8],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,8],["run_Cpp_compiler","A",33,7,9],["run_executable","A",34,7,10],["produce_json_file","A",35,7,11] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,20],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,20],[17,12],[17,20],[18,12],[19,12],[22,20],[25,20],[26,20],[26,27],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,22],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,19],[8,7],[14,3],[17,6],[17,4],[17,6],[18,17],[18,35],[19,18],[22,14],[25,17],[26,25],[29,26],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #54","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["receive_json_file","A",19,4,12],["visualize_trace","A",20,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,7],["write_abstract_syntax_tree","A",28,5,8],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,8],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,8],["run_Cpp_compiler","A",35,7,9],["run_executable","A",36,7,10],["produce_json_file","A",37,7,11] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,22],[18,13],[18,22],[19,13],[20,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,20],[8,7],[8,20],[9,8],[15,3],[18,6],[18,4],[18,6],[19,18],[19,37],[20,19],[24,15],[27,18],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #55","T",28,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["end_of_session","A",8,1,9],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["MP_parser","R",19,5,0],["perform_syntax_analysis","A",21,5,3],["perform_syntax_analysis","A",24,5,7],["Abstract_syntax_tree","R",26,6,0],["Trace_generator","R",27,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,19],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[7,19],[7,12],[8,1],[14,12],[14,19],[17,12],[17,19],[21,19],[24,19]],
+[[3,2],[4,3],[4,21],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,24],[7,17],[8,7],[14,3],[17,6],[17,4],[17,6],[21,14],[24,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #56","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["save_MP_file","A",8,1,9],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,7],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[7,21],[7,13],[8,1],[8,13],[9,1],[15,13],[15,21],[18,13],[18,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,26],[7,18],[8,7],[9,8],[15,3],[18,6],[18,4],[18,6],[23,15],[26,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #57","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #58","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #59","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #60","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #61","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #62","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #63","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #64","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #65","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #66","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #67","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #68","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #69","T",38,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #70","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #71","T",30,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #72","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #73","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,23],[10,9],[16,3],[21,8],[21,4],[21,8],[22,21],[22,39],[23,22],[26,16],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #74","T",42,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,26],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,28],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[17,3],[22,8],[22,4],[22,8],[23,22],[23,41],[24,23],[28,17],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #75","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[16,14],[16,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[16,3],[21,8],[21,4],[21,8],[25,16],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #76","T",34,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,3],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,25],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[17,15],[17,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,27],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[17,3],[22,8],[22,4],[22,8],[27,17],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #77","T",40,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,23],[10,9],[16,3],[21,8],[21,4],[21,8],[22,21],[22,39],[23,22],[26,16],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #78","T",42,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,26],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,28],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[17,3],[22,8],[22,4],[22,8],[23,22],[23,41],[24,23],[28,17],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #79","T",32,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[16,14],[16,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[16,3],[21,8],[21,4],[21,8],[25,16],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #80","T",34,0,0],["User","R",1,1,0],["MP_model_editing","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,3],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,25],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[17,15],[17,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,27],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[17,3],[22,8],[22,4],[22,8],[27,17],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #81","T",44,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["end_of_session","A",8,1,21],["MP_code_editor","R",9,2,0],["MP_GUI","R",12,3,0],["input_MP_code","A",14,3,3],["receive_json_file","A",15,3,8],["visualize_trace","A",16,3,9],["input_MP_code","A",18,3,13],["receive_json_file","A",19,3,18],["visualize_trace","A",20,3,19],["MP_parser","R",21,4,0],["perform_syntax_analysis","A",23,4,3],["write_abstract_syntax_tree","A",24,4,4],["perform_syntax_analysis","A",26,4,13],["write_abstract_syntax_tree","A",27,4,14],["Abstract_syntax_tree","R",28,5,0],["read_abstract_syntax_tree","A",30,5,4],["read_abstract_syntax_tree","A",32,5,14],["Trace_generator","R",33,6,0],["generate_Cpp_file","A",35,6,4],["run_Cpp_compiler","A",36,6,5],["run_executable","A",37,6,6],["produce_json_file","A",38,6,7],["generate_Cpp_file","A",40,6,14],["run_Cpp_compiler","A",41,6,15],["run_executable","A",42,6,16],["produce_json_file","A",43,6,17] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,21],[15,12],[16,12],[18,12],[18,21],[19,12],[20,12],[23,21],[24,21],[24,28],[26,21],[27,21],[27,28],[30,28],[30,33],[32,28],[32,33],[35,33],[36,33],[37,33],[38,33],[40,33],[41,33],[42,33],[43,33]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,20],[8,7],[14,3],[15,14],[15,38],[16,15],[18,6],[18,24],[18,6],[19,18],[19,43],[20,19],[23,14],[24,23],[26,18],[27,26],[27,30],[30,24],[32,27],[32,38],[35,30],[36,35],[37,36],[38,37],[40,32],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #82","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["save_MP_file","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",19,3,13],["receive_json_file","A",20,3,18],["visualize_trace","A",21,3,19],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,13],["write_abstract_syntax_tree","A",29,4,14],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,14],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,14],["run_Cpp_compiler","A",43,6,15],["run_executable","A",44,6,16],["produce_json_file","A",45,6,17] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,23],[16,13],[17,13],[19,13],[19,23],[20,13],[21,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,21],[8,7],[8,21],[9,8],[15,3],[16,15],[16,40],[17,16],[19,6],[19,26],[19,6],[20,19],[20,45],[21,20],[25,15],[26,25],[28,19],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #83","T",36,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["receive_json_file","A",15,4,8],["visualize_trace","A",16,4,9],["input_MP_code","A",18,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["write_abstract_syntax_tree","A",23,5,4],["perform_syntax_analysis","A",25,5,13],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,4],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,4],["run_Cpp_compiler","A",33,7,5],["run_executable","A",34,7,6],["produce_json_file","A",35,7,7] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[7,20],[7,12],[8,1],[14,12],[14,20],[15,12],[16,12],[18,12],[18,20],[22,20],[23,20],[23,27],[25,20],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,25],[7,18],[8,7],[14,3],[15,14],[15,35],[16,15],[18,6],[18,23],[18,6],[22,14],[23,22],[25,18],[29,23],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #84","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["MP_model_editing","A",5,1,11],["press_RUN_button","A",6,1,12],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",19,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,13],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[7,22],[7,13],[8,1],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[19,13],[19,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,27],[7,19],[8,7],[9,8],[15,3],[16,15],[16,37],[17,16],[19,6],[19,25],[19,6],[24,15],[25,24],[27,19],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #85","T",44,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["end_of_session","A",8,1,21],["MP_code_editor","R",9,2,0],["MP_GUI","R",12,3,0],["input_MP_code","A",14,3,3],["receive_json_file","A",15,3,8],["visualize_trace","A",16,3,9],["input_MP_code","A",18,3,13],["receive_json_file","A",19,3,18],["visualize_trace","A",20,3,19],["MP_parser","R",21,4,0],["perform_syntax_analysis","A",23,4,3],["write_abstract_syntax_tree","A",24,4,4],["perform_syntax_analysis","A",26,4,13],["write_abstract_syntax_tree","A",27,4,14],["Abstract_syntax_tree","R",28,5,0],["read_abstract_syntax_tree","A",30,5,4],["read_abstract_syntax_tree","A",32,5,14],["Trace_generator","R",33,6,0],["generate_Cpp_file","A",35,6,4],["run_Cpp_compiler","A",36,6,5],["run_executable","A",37,6,6],["produce_json_file","A",38,6,7],["generate_Cpp_file","A",40,6,14],["run_Cpp_compiler","A",41,6,15],["run_executable","A",42,6,16],["produce_json_file","A",43,6,17] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,21],[15,12],[16,12],[18,12],[18,21],[19,12],[20,12],[23,21],[24,21],[24,28],[26,21],[27,21],[27,28],[30,28],[30,33],[32,28],[32,33],[35,33],[36,33],[37,33],[38,33],[40,33],[41,33],[42,33],[43,33]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,20],[8,7],[14,3],[15,14],[15,38],[16,15],[18,6],[18,24],[18,6],[19,18],[19,43],[20,19],[23,14],[24,23],[26,18],[27,26],[27,30],[30,24],[32,27],[32,38],[35,30],[36,35],[37,36],[38,37],[40,32],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #86","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["browse_event_trace","A",7,1,20],["save_MP_file","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",19,3,13],["receive_json_file","A",20,3,18],["visualize_trace","A",21,3,19],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,13],["write_abstract_syntax_tree","A",29,4,14],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,14],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,14],["run_Cpp_compiler","A",43,6,15],["run_executable","A",44,6,16],["produce_json_file","A",45,6,17] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,23],[16,13],[17,13],[19,13],[19,23],[20,13],[21,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,21],[8,7],[8,21],[9,8],[15,3],[16,15],[16,40],[17,16],[19,6],[19,26],[19,6],[20,19],[20,45],[21,20],[25,15],[26,25],[28,19],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #87","T",36,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["receive_json_file","A",15,4,8],["visualize_trace","A",16,4,9],["input_MP_code","A",18,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["write_abstract_syntax_tree","A",23,5,4],["perform_syntax_analysis","A",25,5,13],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,4],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,4],["run_Cpp_compiler","A",33,7,5],["run_executable","A",34,7,6],["produce_json_file","A",35,7,7] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[5,1],[5,9],[6,1],[6,12],[7,1],[7,20],[7,12],[8,1],[14,12],[14,20],[15,12],[16,12],[18,12],[18,20],[22,20],[23,20],[23,27],[25,20],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,16],[5,4],[5,2],[6,5],[6,16],[7,6],[7,25],[7,18],[8,7],[14,3],[15,14],[15,35],[16,15],[18,6],[18,23],[18,6],[22,14],[23,22],[25,18],[29,23],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #88","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["browsing_MP_code","A",5,1,11],["press_RUN_button","A",6,1,12],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",7,3,14],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",19,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,13],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,10],[6,1],[6,13],[7,1],[7,22],[7,13],[8,1],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[19,13],[19,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,2],[6,5],[6,17],[7,6],[7,27],[7,19],[8,7],[9,8],[15,3],[16,15],[16,37],[17,16],[19,6],[19,25],[19,6],[24,15],[25,24],[27,19],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #89","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #90","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #91","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #92","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #93","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #94","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #95","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #96","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["load_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #97","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #98","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #99","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #100","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #101","T",46,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",15,3,3],["receive_json_file","A",16,3,8],["visualize_trace","A",17,3,9],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,3],["write_abstract_syntax_tree","A",26,4,4],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,4],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,4],["run_Cpp_compiler","A",38,6,5],["run_executable","A",39,6,6],["produce_json_file","A",40,6,7],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,23],[16,13],[17,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[15,3],[16,15],[16,40],[17,16],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,15],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #102","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,25],[17,14],[18,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,23],[9,8],[9,23],[10,9],[16,3],[17,16],[17,42],[18,17],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,16],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #103","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["receive_json_file","A",16,4,8],["visualize_trace","A",17,4,9],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["write_abstract_syntax_tree","A",25,5,4],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,4],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,4],["run_Cpp_compiler","A",35,7,5],["run_executable","A",36,7,6],["produce_json_file","A",37,7,7] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[15,13],[15,22],[16,13],[17,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,17],[5,4],[5,17],[6,5],[6,2],[7,6],[7,5],[8,7],[8,27],[8,20],[9,8],[15,3],[16,15],[16,37],[17,16],[20,7],[20,25],[20,7],[24,15],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #104","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[6,2],[7,6],[7,5],[8,7],[8,29],[8,21],[9,8],[10,9],[16,3],[17,16],[17,39],[18,17],[21,7],[21,27],[21,7],[26,16],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #105","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,25],[17,14],[18,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[16,3],[17,16],[17,42],[18,17],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,16],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #106","T",50,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",17,3,3],["receive_json_file","A",18,3,8],["visualize_trace","A",19,3,9],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,3],["write_abstract_syntax_tree","A",30,4,4],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,4],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,4],["run_Cpp_compiler","A",42,6,5],["run_executable","A",43,6,6],["produce_json_file","A",44,6,7],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,27],[18,15],[19,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[17,3],[18,17],[18,44],[19,18],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,17],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #107","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[16,3],[17,16],[17,39],[18,17],[22,8],[22,27],[22,8],[26,16],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #108","T",42,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["receive_json_file","A",18,4,8],["visualize_trace","A",19,4,9],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["write_abstract_syntax_tree","A",29,5,4],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,4],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,4],["run_Cpp_compiler","A",39,7,5],["run_executable","A",40,7,6],["produce_json_file","A",41,7,7] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[17,15],[17,26],[18,15],[19,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[17,3],[18,17],[18,41],[19,18],[23,8],[23,29],[23,8],[28,17],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #109","T",48,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",16,3,3],["receive_json_file","A",17,3,8],["visualize_trace","A",18,3,9],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,3],["write_abstract_syntax_tree","A",28,4,4],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,4],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,4],["run_Cpp_compiler","A",40,6,5],["run_executable","A",41,6,6],["produce_json_file","A",42,6,7],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,25],[17,14],[18,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[16,3],[17,16],[17,42],[18,17],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,16],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #110","T",50,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",17,3,3],["receive_json_file","A",18,3,8],["visualize_trace","A",19,3,9],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,3],["write_abstract_syntax_tree","A",30,4,4],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,4],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,4],["run_Cpp_compiler","A",42,6,5],["run_executable","A",43,6,6],["produce_json_file","A",44,6,7],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,27],[18,15],[19,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[17,3],[18,17],[18,44],[19,18],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,17],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #111","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["receive_json_file","A",17,4,8],["visualize_trace","A",18,4,9],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["write_abstract_syntax_tree","A",27,5,4],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,4],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,4],["run_Cpp_compiler","A",37,7,5],["run_executable","A",38,7,6],["produce_json_file","A",39,7,7] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[16,14],[16,24],[17,14],[18,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,18],[5,4],[5,18],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[16,3],[17,16],[17,39],[18,17],[22,8],[22,27],[22,8],[26,16],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #112","T",42,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browse_event_trace","A",4,1,10],["save_MP_file","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["receive_json_file","A",18,4,8],["visualize_trace","A",19,4,9],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["write_abstract_syntax_tree","A",29,5,4],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,4],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,4],["run_Cpp_compiler","A",39,7,5],["run_executable","A",40,7,6],["produce_json_file","A",41,7,7] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[17,15],[17,26],[18,15],[19,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,19],[5,4],[5,19],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[17,3],[18,17],[18,41],[19,18],[23,8],[23,29],[23,8],[28,17],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #113","T",36,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["receive_json_file","A",18,4,12],["visualize_trace","A",19,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["perform_syntax_analysis","A",25,5,7],["write_abstract_syntax_tree","A",26,5,8],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,8],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,8],["run_Cpp_compiler","A",33,7,9],["run_executable","A",34,7,10],["produce_json_file","A",35,7,11] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,20],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,20],[17,12],[17,20],[18,12],[19,12],[22,20],[25,20],[26,20],[26,27],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,22],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,19],[8,7],[14,3],[17,6],[17,4],[17,6],[18,17],[18,35],[19,18],[22,14],[25,17],[26,25],[29,26],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #114","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["receive_json_file","A",19,4,12],["visualize_trace","A",20,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,7],["write_abstract_syntax_tree","A",28,5,8],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,8],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,8],["run_Cpp_compiler","A",35,7,9],["run_executable","A",36,7,10],["produce_json_file","A",37,7,11] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,22],[18,13],[18,22],[19,13],[20,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,20],[8,7],[8,20],[9,8],[15,3],[18,6],[18,4],[18,6],[19,18],[19,37],[20,19],[24,15],[27,18],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #115","T",28,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["end_of_session","A",8,1,9],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["MP_parser","R",19,5,0],["perform_syntax_analysis","A",21,5,3],["perform_syntax_analysis","A",24,5,7],["Abstract_syntax_tree","R",26,6,0],["Trace_generator","R",27,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,19],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[7,19],[7,12],[8,1],[14,12],[14,19],[17,12],[17,19],[21,19],[24,19]],
+[[3,2],[4,3],[4,21],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,24],[7,17],[8,7],[14,3],[17,6],[17,4],[17,6],[21,14],[24,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #116","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["MP_model_editing","A",5,1,5],["press_RUN_button","A",6,1,6],["save_MP_file","A",8,1,9],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,7],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[7,21],[7,13],[8,1],[8,13],[9,1],[15,13],[15,21],[18,13],[18,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,26],[7,18],[8,7],[9,8],[15,3],[18,6],[18,4],[18,6],[23,15],[26,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #117","T",36,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["end_of_session","A",8,1,15],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["receive_json_file","A",18,4,12],["visualize_trace","A",19,4,13],["MP_parser","R",20,5,0],["perform_syntax_analysis","A",22,5,3],["perform_syntax_analysis","A",25,5,7],["write_abstract_syntax_tree","A",26,5,8],["Abstract_syntax_tree","R",27,6,0],["read_abstract_syntax_tree","A",29,6,8],["Trace_generator","R",30,7,0],["generate_Cpp_file","A",32,7,8],["run_Cpp_compiler","A",33,7,9],["run_executable","A",34,7,10],["produce_json_file","A",35,7,11] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,20],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[8,1],[14,12],[14,20],[17,12],[17,20],[18,12],[19,12],[22,20],[25,20],[26,20],[26,27],[29,27],[29,30],[32,30],[33,30],[34,30],[35,30]],
+[[3,2],[4,3],[4,22],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,19],[8,7],[14,3],[17,6],[17,4],[17,6],[18,17],[18,35],[19,18],[22,14],[25,17],[26,25],[29,26],[32,29],[33,32],[34,33],[35,34]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #118","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["browse_event_trace","A",7,1,14],["save_MP_file","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["receive_json_file","A",19,4,12],["visualize_trace","A",20,4,13],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,7],["write_abstract_syntax_tree","A",28,5,8],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,8],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,8],["run_Cpp_compiler","A",35,7,9],["run_executable","A",36,7,10],["produce_json_file","A",37,7,11] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[8,1],[8,13],[9,1],[15,13],[15,22],[18,13],[18,22],[19,13],[20,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,20],[8,7],[8,20],[9,8],[15,3],[18,6],[18,4],[18,6],[19,18],[19,37],[20,19],[24,15],[27,18],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #119","T",28,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["end_of_session","A",8,1,9],["MP_code_editor","R",9,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",12,4,0],["input_MP_code","A",14,4,3],["input_MP_code","A",17,4,7],["MP_parser","R",19,5,0],["perform_syntax_analysis","A",21,5,3],["perform_syntax_analysis","A",24,5,7],["Abstract_syntax_tree","R",26,6,0],["Trace_generator","R",27,7,0] ],
+
+[[2,1],[2,9],[3,1],[3,12],[4,1],[4,19],[4,12],[5,1],[5,9],[6,1],[6,12],[7,1],[7,19],[7,12],[8,1],[14,12],[14,19],[17,12],[17,19],[21,19],[24,19]],
+[[3,2],[4,3],[4,21],[4,14],[5,4],[5,2],[6,5],[6,4],[7,6],[7,24],[7,17],[8,7],[14,3],[17,6],[17,4],[17,6],[21,14],[24,17]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #120","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["browsing_MP_code","A",5,1,5],["press_RUN_button","A",6,1,6],["save_MP_file","A",8,1,9],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",7,3,8],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",18,4,7],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,7],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,10],[6,1],[6,13],[7,1],[7,21],[7,13],[8,1],[8,13],[9,1],[15,13],[15,21],[18,13],[18,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[5,2],[6,5],[6,4],[7,6],[7,26],[7,18],[8,7],[9,8],[15,3],[18,6],[18,4],[18,6],[23,15],[26,18]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #121","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #122","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #123","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #124","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #125","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #126","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #127","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #128","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["load_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #129","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #130","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #131","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #132","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #133","T",38,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,3],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,22],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[15,13],[15,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,24],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,21],[9,8],[15,3],[19,7],[19,4],[19,7],[20,19],[20,37],[21,20],[24,15],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #134","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[16,14],[16,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[16,3],[20,7],[20,4],[20,7],[21,20],[21,39],[22,21],[26,16],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #135","T",30,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",15,4,3],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,3],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,10],[3,1],[3,13],[4,1],[4,21],[4,13],[5,1],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[15,13],[15,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,23],[4,15],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[15,3],[19,7],[19,4],[19,7],[23,15],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #136","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[16,14],[16,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[6,2],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[16,3],[20,7],[20,4],[20,7],[25,16],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #137","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,23],[10,9],[16,3],[21,8],[21,4],[21,8],[22,21],[22,39],[23,22],[26,16],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #138","T",42,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,26],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,28],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[17,3],[22,8],[22,4],[22,8],[23,22],[23,41],[24,23],[28,17],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #139","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[16,14],[16,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[16,3],[21,8],[21,4],[21,8],[25,16],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #140","T",34,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,3],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,25],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[17,15],[17,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,27],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[17,3],[22,8],[22,4],[22,8],[27,17],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #141","T",40,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,3],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,24],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[16,14],[16,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,26],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,23],[10,9],[16,3],[21,8],[21,4],[21,8],[22,21],[22,39],[23,22],[26,16],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #142","T",42,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,3],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,26],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[17,15],[17,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,28],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[17,3],[22,8],[22,4],[22,8],[23,22],[23,41],[24,23],[28,17],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #143","T",32,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",16,4,3],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,3],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,11],[3,1],[3,14],[4,1],[4,23],[4,14],[5,1],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[16,14],[16,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,25],[4,16],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[16,3],[21,8],[21,4],[21,8],[25,16],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #144","T",34,0,0],["User","R",1,1,0],["browsing_MP_code","A",2,1,1],["press_RUN_button","A",3,1,2],["save_MP_file","A",5,1,5],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",4,3,4],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",17,4,3],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,3],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,12],[3,1],[3,15],[4,1],[4,25],[4,15],[5,1],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[17,15],[17,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,27],[4,17],[5,4],[6,5],[7,6],[7,2],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[17,3],[22,8],[22,4],[22,8],[27,17],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #145","T",46,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",16,3,4],["receive_json_file","A",17,3,9],["visualize_trace","A",18,3,10],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,4],["write_abstract_syntax_tree","A",26,4,5],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,5],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,5],["run_Cpp_compiler","A",38,6,6],["run_executable","A",39,6,7],["produce_json_file","A",40,6,8],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,23],[17,13],[18,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,22],[9,8],[16,4],[17,16],[17,40],[18,17],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,16],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #146","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,25],[18,14],[19,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,23],[9,8],[9,23],[10,9],[17,4],[18,17],[18,42],[19,18],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,17],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #147","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["receive_json_file","A",17,4,9],["visualize_trace","A",18,4,10],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["write_abstract_syntax_tree","A",25,5,5],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,5],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,5],["run_Cpp_compiler","A",35,7,6],["run_executable","A",36,7,7],["produce_json_file","A",37,7,8] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[16,13],[16,22],[17,13],[18,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,27],[8,20],[9,8],[16,4],[17,16],[17,37],[18,17],[20,7],[20,25],[20,7],[24,16],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #148","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,29],[8,21],[9,8],[10,9],[17,4],[18,17],[18,39],[19,18],[21,7],[21,27],[21,7],[26,17],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #149","T",46,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",16,3,4],["receive_json_file","A",17,3,9],["visualize_trace","A",18,3,10],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,4],["write_abstract_syntax_tree","A",26,4,5],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,5],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,5],["run_Cpp_compiler","A",38,6,6],["run_executable","A",39,6,7],["produce_json_file","A",40,6,8],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,23],[17,13],[18,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,22],[9,8],[16,4],[17,16],[17,40],[18,17],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,16],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #150","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,25],[18,14],[19,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,23],[9,8],[9,23],[10,9],[17,4],[18,17],[18,42],[19,18],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,17],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #151","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["receive_json_file","A",17,4,9],["visualize_trace","A",18,4,10],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["write_abstract_syntax_tree","A",25,5,5],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,5],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,5],["run_Cpp_compiler","A",35,7,6],["run_executable","A",36,7,7],["produce_json_file","A",37,7,8] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[16,13],[16,22],[17,13],[18,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,27],[8,20],[9,8],[16,4],[17,16],[17,37],[18,17],[20,7],[20,25],[20,7],[24,16],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #152","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,29],[8,21],[9,8],[10,9],[17,4],[18,17],[18,39],[19,18],[21,7],[21,27],[21,7],[26,17],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #153","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #154","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #155","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #156","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #157","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #158","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #159","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #160","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #161","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #162","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #163","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #164","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #165","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #166","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #167","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #168","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #169","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",24,3,16],["receive_json_file","A",25,3,21],["visualize_trace","A",26,3,22],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,16],["write_abstract_syntax_tree","A",33,4,17],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,17],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,17],["run_Cpp_compiler","A",47,6,18],["run_executable","A",48,6,19],["produce_json_file","A",49,6,20] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,27],[19,15],[20,15],[24,15],[24,27],[25,15],[26,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[18,4],[19,18],[19,44],[20,19],[24,9],[24,30],[24,9],[25,24],[25,49],[26,25],[29,18],[30,29],[32,24],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #170","T",52,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["save_MP_file","A",11,1,24],["end_of_session","A",12,1,25],["MP_code_editor","R",13,2,0],["MP_GUI","R",16,3,0],["input_MP_code","A",19,3,4],["receive_json_file","A",20,3,9],["visualize_trace","A",21,3,10],["input_MP_code","A",25,3,16],["receive_json_file","A",26,3,21],["visualize_trace","A",27,3,22],["MP_parser","R",29,4,0],["perform_syntax_analysis","A",31,4,4],["write_abstract_syntax_tree","A",32,4,5],["perform_syntax_analysis","A",34,4,16],["write_abstract_syntax_tree","A",35,4,17],["Abstract_syntax_tree","R",36,5,0],["read_abstract_syntax_tree","A",38,5,5],["read_abstract_syntax_tree","A",40,5,17],["Trace_generator","R",41,6,0],["generate_Cpp_file","A",43,6,5],["run_Cpp_compiler","A",44,6,6],["run_executable","A",45,6,7],["produce_json_file","A",46,6,8],["generate_Cpp_file","A",48,6,17],["run_Cpp_compiler","A",49,6,18],["run_executable","A",50,6,19],["produce_json_file","A",51,6,20] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,29],[20,16],[21,16],[25,16],[25,29],[26,16],[27,16],[31,29],[32,29],[32,36],[34,29],[35,29],[35,36],[38,36],[38,41],[40,36],[40,41],[43,41],[44,41],[45,41],[46,41],[48,41],[49,41],[50,41],[51,41]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,27],[11,10],[11,27],[12,11],[19,4],[20,19],[20,46],[21,20],[25,9],[25,32],[25,9],[26,25],[26,51],[27,26],[31,19],[32,31],[34,25],[35,34],[35,38],[38,32],[40,35],[40,46],[43,38],[44,43],[45,44],[46,45],[48,40],[49,48],[50,49],[51,50]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #171","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",24,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,16],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,26],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[24,15],[24,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,31],[10,24],[11,10],[18,4],[19,18],[19,41],[20,19],[24,9],[24,29],[24,9],[28,18],[29,28],[31,24],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #172","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["receive_json_file","A",20,4,9],["visualize_trace","A",21,4,10],["input_MP_code","A",25,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["write_abstract_syntax_tree","A",31,5,5],["perform_syntax_analysis","A",33,5,16],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,5],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,5],["run_Cpp_compiler","A",41,7,6],["run_executable","A",42,7,7],["produce_json_file","A",43,7,8] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,28],[10,16],[11,1],[11,16],[12,1],[19,16],[19,28],[20,16],[21,16],[25,16],[25,28],[30,28],[31,28],[31,35],[33,28],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,33],[10,25],[11,10],[12,11],[19,4],[20,19],[20,43],[21,20],[25,9],[25,31],[25,9],[30,19],[31,30],[33,25],[37,31],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #173","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",24,3,16],["receive_json_file","A",25,3,21],["visualize_trace","A",26,3,22],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,16],["write_abstract_syntax_tree","A",33,4,17],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,17],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,17],["run_Cpp_compiler","A",47,6,18],["run_executable","A",48,6,19],["produce_json_file","A",49,6,20] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,27],[19,15],[20,15],[24,15],[24,27],[25,15],[26,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[18,4],[19,18],[19,44],[20,19],[24,9],[24,30],[24,9],[25,24],[25,49],[26,25],[29,18],[30,29],[32,24],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #174","T",52,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["save_MP_file","A",11,1,24],["end_of_session","A",12,1,25],["MP_code_editor","R",13,2,0],["MP_GUI","R",16,3,0],["input_MP_code","A",19,3,4],["receive_json_file","A",20,3,9],["visualize_trace","A",21,3,10],["input_MP_code","A",25,3,16],["receive_json_file","A",26,3,21],["visualize_trace","A",27,3,22],["MP_parser","R",29,4,0],["perform_syntax_analysis","A",31,4,4],["write_abstract_syntax_tree","A",32,4,5],["perform_syntax_analysis","A",34,4,16],["write_abstract_syntax_tree","A",35,4,17],["Abstract_syntax_tree","R",36,5,0],["read_abstract_syntax_tree","A",38,5,5],["read_abstract_syntax_tree","A",40,5,17],["Trace_generator","R",41,6,0],["generate_Cpp_file","A",43,6,5],["run_Cpp_compiler","A",44,6,6],["run_executable","A",45,6,7],["produce_json_file","A",46,6,8],["generate_Cpp_file","A",48,6,17],["run_Cpp_compiler","A",49,6,18],["run_executable","A",50,6,19],["produce_json_file","A",51,6,20] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,29],[20,16],[21,16],[25,16],[25,29],[26,16],[27,16],[31,29],[32,29],[32,36],[34,29],[35,29],[35,36],[38,36],[38,41],[40,36],[40,41],[43,41],[44,41],[45,41],[46,41],[48,41],[49,41],[50,41],[51,41]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,27],[11,10],[11,27],[12,11],[19,4],[20,19],[20,46],[21,20],[25,9],[25,32],[25,9],[26,25],[26,51],[27,26],[31,19],[32,31],[34,25],[35,34],[35,38],[38,32],[40,35],[40,46],[43,38],[44,43],[45,44],[46,45],[48,40],[49,48],[50,49],[51,50]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #175","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",24,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,16],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,26],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[24,15],[24,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,31],[10,24],[11,10],[18,4],[19,18],[19,41],[20,19],[24,9],[24,29],[24,9],[28,18],[29,28],[31,24],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #176","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["receive_json_file","A",20,4,9],["visualize_trace","A",21,4,10],["input_MP_code","A",25,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["write_abstract_syntax_tree","A",31,5,5],["perform_syntax_analysis","A",33,5,16],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,5],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,5],["run_Cpp_compiler","A",41,7,6],["run_executable","A",42,7,7],["produce_json_file","A",43,7,8] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,28],[10,16],[11,1],[11,16],[12,1],[19,16],[19,28],[20,16],[21,16],[25,16],[25,28],[30,28],[31,28],[31,35],[33,28],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,33],[10,25],[11,10],[12,11],[19,4],[20,19],[20,43],[21,20],[25,9],[25,31],[25,9],[30,19],[31,30],[33,25],[37,31],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #177","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,22],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,24],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,21],[9,8],[16,4],[19,7],[19,5],[19,7],[20,19],[20,37],[21,20],[24,16],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #178","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[17,4],[20,7],[20,5],[20,7],[21,20],[21,39],[22,21],[26,17],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #179","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,4],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,21],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[16,13],[16,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,2],[5,4],[5,23],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[16,4],[19,7],[19,5],[19,7],[23,16],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #180","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[17,14],[17,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[17,4],[20,7],[20,5],[20,7],[25,17],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #181","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,22],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,24],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,21],[9,8],[16,4],[19,7],[19,5],[19,7],[20,19],[20,37],[21,20],[24,16],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #182","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[17,4],[20,7],[20,5],[20,7],[21,20],[21,39],[22,21],[26,17],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #183","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,4],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,21],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[16,13],[16,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,2],[5,4],[5,23],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[16,4],[19,7],[19,5],[19,7],[23,16],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #184","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[17,14],[17,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[17,4],[20,7],[20,5],[20,7],[25,17],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #185","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #186","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #187","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #188","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #189","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #190","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #191","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #192","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #193","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #194","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #195","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #196","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #197","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #198","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #199","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #200","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #201","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["receive_json_file","A",24,4,15],["visualize_trace","A",25,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,10],["write_abstract_syntax_tree","A",32,5,11],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,11],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,11],["run_Cpp_compiler","A",39,7,12],["run_executable","A",40,7,13],["produce_json_file","A",41,7,14] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,26],[23,15],[23,26],[24,15],[25,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,25],[11,10],[18,4],[23,9],[23,5],[23,9],[24,23],[24,41],[25,24],[28,18],[31,23],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #202","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["receive_json_file","A",25,4,15],["visualize_trace","A",26,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["perform_syntax_analysis","A",33,5,10],["write_abstract_syntax_tree","A",34,5,11],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,11],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,11],["run_Cpp_compiler","A",41,7,12],["run_executable","A",42,7,13],["produce_json_file","A",43,7,14] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,28],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,28],[24,16],[24,28],[25,16],[26,16],[30,28],[33,28],[34,28],[34,35],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,30],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[11,26],[12,11],[19,4],[24,9],[24,5],[24,9],[25,24],[25,43],[26,25],[30,19],[33,24],[34,33],[37,34],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #203","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,10],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,25],[10,15],[11,1],[18,15],[18,25],[23,15],[23,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,30],[10,23],[11,10],[18,4],[23,9],[23,5],[23,9],[27,18],[30,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #204","T",36,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["save_MP_file","A",11,1,12],["end_of_session","A",12,1,13],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["MP_parser","R",27,5,0],["perform_syntax_analysis","A",29,5,4],["perform_syntax_analysis","A",32,5,10],["Abstract_syntax_tree","R",34,6,0],["Trace_generator","R",35,7,0] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,27],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,27],[10,16],[11,1],[11,16],[12,1],[19,16],[19,27],[24,16],[24,27],[29,27],[32,27]],
+[[3,2],[4,3],[4,2],[5,4],[5,29],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,32],[10,24],[11,10],[12,11],[19,4],[24,9],[24,5],[24,9],[29,19],[32,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #205","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["receive_json_file","A",24,4,15],["visualize_trace","A",25,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,10],["write_abstract_syntax_tree","A",32,5,11],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,11],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,11],["run_Cpp_compiler","A",39,7,12],["run_executable","A",40,7,13],["produce_json_file","A",41,7,14] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,26],[23,15],[23,26],[24,15],[25,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,25],[11,10],[18,4],[23,9],[23,5],[23,9],[24,23],[24,41],[25,24],[28,18],[31,23],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #206","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["receive_json_file","A",25,4,15],["visualize_trace","A",26,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["perform_syntax_analysis","A",33,5,10],["write_abstract_syntax_tree","A",34,5,11],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,11],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,11],["run_Cpp_compiler","A",41,7,12],["run_executable","A",42,7,13],["produce_json_file","A",43,7,14] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,28],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,28],[24,16],[24,28],[25,16],[26,16],[30,28],[33,28],[34,28],[34,35],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,30],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[11,26],[12,11],[19,4],[24,9],[24,5],[24,9],[25,24],[25,43],[26,25],[30,19],[33,24],[34,33],[37,34],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #207","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,10],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,25],[10,15],[11,1],[18,15],[18,25],[23,15],[23,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,30],[10,23],[11,10],[18,4],[23,9],[23,5],[23,9],[27,18],[30,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #208","T",36,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["MP_model_editing","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["save_MP_file","A",11,1,12],["end_of_session","A",12,1,13],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["MP_parser","R",27,5,0],["perform_syntax_analysis","A",29,5,4],["perform_syntax_analysis","A",32,5,10],["Abstract_syntax_tree","R",34,6,0],["Trace_generator","R",35,7,0] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,27],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,27],[10,16],[11,1],[11,16],[12,1],[19,16],[19,27],[24,16],[24,27],[29,27],[32,27]],
+[[3,2],[4,3],[4,2],[5,4],[5,29],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,32],[10,24],[11,10],[12,11],[19,4],[24,9],[24,5],[24,9],[29,19],[32,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #209","T",46,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",16,3,4],["receive_json_file","A",17,3,9],["visualize_trace","A",18,3,10],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,4],["write_abstract_syntax_tree","A",26,4,5],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,5],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,5],["run_Cpp_compiler","A",38,6,6],["run_executable","A",39,6,7],["produce_json_file","A",40,6,8],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,23],[17,13],[18,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,22],[9,8],[16,4],[17,16],[17,40],[18,17],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,16],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #210","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,25],[18,14],[19,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,23],[9,8],[9,23],[10,9],[17,4],[18,17],[18,42],[19,18],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,17],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #211","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["receive_json_file","A",17,4,9],["visualize_trace","A",18,4,10],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["write_abstract_syntax_tree","A",25,5,5],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,5],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,5],["run_Cpp_compiler","A",35,7,6],["run_executable","A",36,7,7],["produce_json_file","A",37,7,8] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[16,13],[16,22],[17,13],[18,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,27],[8,20],[9,8],[16,4],[17,16],[17,37],[18,17],[20,7],[20,25],[20,7],[24,16],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #212","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["MP_model_editing","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,29],[8,21],[9,8],[10,9],[17,4],[18,17],[18,39],[19,18],[21,7],[21,27],[21,7],[26,17],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #213","T",46,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["end_of_session","A",9,1,22],["MP_code_editor","R",10,2,0],["MP_GUI","R",13,3,0],["input_MP_code","A",16,3,4],["receive_json_file","A",17,3,9],["visualize_trace","A",18,3,10],["input_MP_code","A",20,3,14],["receive_json_file","A",21,3,19],["visualize_trace","A",22,3,20],["MP_parser","R",23,4,0],["perform_syntax_analysis","A",25,4,4],["write_abstract_syntax_tree","A",26,4,5],["perform_syntax_analysis","A",28,4,14],["write_abstract_syntax_tree","A",29,4,15],["Abstract_syntax_tree","R",30,5,0],["read_abstract_syntax_tree","A",32,5,5],["read_abstract_syntax_tree","A",34,5,15],["Trace_generator","R",35,6,0],["generate_Cpp_file","A",37,6,5],["run_Cpp_compiler","A",38,6,6],["run_executable","A",39,6,7],["produce_json_file","A",40,6,8],["generate_Cpp_file","A",42,6,15],["run_Cpp_compiler","A",43,6,16],["run_executable","A",44,6,17],["produce_json_file","A",45,6,18] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,23],[17,13],[18,13],[20,13],[20,23],[21,13],[22,13],[25,23],[26,23],[26,30],[28,23],[29,23],[29,30],[32,30],[32,35],[34,30],[34,35],[37,35],[38,35],[39,35],[40,35],[42,35],[43,35],[44,35],[45,35]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,22],[9,8],[16,4],[17,16],[17,40],[18,17],[20,7],[20,26],[20,7],[21,20],[21,45],[22,21],[25,16],[26,25],[28,20],[29,28],[29,32],[32,26],[34,29],[34,40],[37,32],[38,37],[39,38],[40,39],[42,34],[43,42],[44,43],[45,44]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #214","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["browse_event_trace","A",8,1,21],["save_MP_file","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",21,3,14],["receive_json_file","A",22,3,19],["visualize_trace","A",23,3,20],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,14],["write_abstract_syntax_tree","A",31,4,15],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,15],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,15],["run_Cpp_compiler","A",45,6,16],["run_executable","A",46,6,17],["produce_json_file","A",47,6,18] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,25],[18,14],[19,14],[21,14],[21,25],[22,14],[23,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,23],[9,8],[9,23],[10,9],[17,4],[18,17],[18,42],[19,18],[21,7],[21,28],[21,7],[22,21],[22,47],[23,22],[27,17],[28,27],[30,21],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #215","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["receive_json_file","A",17,4,9],["visualize_trace","A",18,4,10],["input_MP_code","A",20,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["write_abstract_syntax_tree","A",25,5,5],["perform_syntax_analysis","A",27,5,14],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,5],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,5],["run_Cpp_compiler","A",35,7,6],["run_executable","A",36,7,7],["produce_json_file","A",37,7,8] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[6,1],[6,10],[7,1],[7,13],[8,1],[8,22],[8,13],[9,1],[16,13],[16,22],[17,13],[18,13],[20,13],[20,22],[24,22],[25,22],[25,29],[27,22],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,18],[6,5],[6,3],[7,6],[7,18],[8,7],[8,27],[8,20],[9,8],[16,4],[17,16],[17,37],[18,17],[20,7],[20,25],[20,7],[24,16],[25,24],[27,20],[31,25],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #216","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["browsing_MP_code","A",6,1,12],["press_RUN_button","A",7,1,13],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",8,3,15],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",21,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,14],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,11],[7,1],[7,14],[8,1],[8,24],[8,14],[9,1],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[21,14],[21,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,3],[7,6],[7,19],[8,7],[8,29],[8,21],[9,8],[10,9],[17,4],[18,17],[18,39],[19,18],[21,7],[21,27],[21,7],[26,17],[27,26],[29,21],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #217","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #218","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #219","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #220","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #221","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #222","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #223","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #224","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["load_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #225","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #226","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #227","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #228","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["MP_model_editing","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #229","T",48,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["end_of_session","A",10,1,23],["MP_code_editor","R",11,2,0],["MP_GUI","R",14,3,0],["input_MP_code","A",17,3,4],["receive_json_file","A",18,3,9],["visualize_trace","A",19,3,10],["input_MP_code","A",22,3,15],["receive_json_file","A",23,3,20],["visualize_trace","A",24,3,21],["MP_parser","R",25,4,0],["perform_syntax_analysis","A",27,4,4],["write_abstract_syntax_tree","A",28,4,5],["perform_syntax_analysis","A",30,4,15],["write_abstract_syntax_tree","A",31,4,16],["Abstract_syntax_tree","R",32,5,0],["read_abstract_syntax_tree","A",34,5,5],["read_abstract_syntax_tree","A",36,5,16],["Trace_generator","R",37,6,0],["generate_Cpp_file","A",39,6,5],["run_Cpp_compiler","A",40,6,6],["run_executable","A",41,6,7],["produce_json_file","A",42,6,8],["generate_Cpp_file","A",44,6,16],["run_Cpp_compiler","A",45,6,17],["run_executable","A",46,6,18],["produce_json_file","A",47,6,19] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,25],[18,14],[19,14],[22,14],[22,25],[23,14],[24,14],[27,25],[28,25],[28,32],[30,25],[31,25],[31,32],[34,32],[34,37],[36,32],[36,37],[39,37],[40,37],[41,37],[42,37],[44,37],[45,37],[46,37],[47,37]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[17,4],[18,17],[18,42],[19,18],[22,8],[22,28],[22,8],[23,22],[23,47],[24,23],[27,17],[28,27],[30,22],[31,30],[31,34],[34,28],[36,31],[36,42],[39,34],[40,39],[41,40],[42,41],[44,36],[45,44],[46,45],[47,46]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #230","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["browse_event_trace","A",9,1,22],["save_MP_file","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",23,3,15],["receive_json_file","A",24,3,20],["visualize_trace","A",25,3,21],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,15],["write_abstract_syntax_tree","A",33,4,16],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,16],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,16],["run_Cpp_compiler","A",47,6,17],["run_executable","A",48,6,18],["produce_json_file","A",49,6,19] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,27],[19,15],[20,15],[23,15],[23,27],[24,15],[25,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,25],[10,9],[10,25],[11,10],[18,4],[19,18],[19,44],[20,19],[23,8],[23,30],[23,8],[24,23],[24,49],[25,24],[29,18],[30,29],[32,23],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #231","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["receive_json_file","A",18,4,9],["visualize_trace","A",19,4,10],["input_MP_code","A",22,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["write_abstract_syntax_tree","A",27,5,5],["perform_syntax_analysis","A",29,5,15],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,5],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,5],["run_Cpp_compiler","A",37,7,6],["run_executable","A",38,7,7],["produce_json_file","A",39,7,8] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,24],[9,14],[10,1],[17,14],[17,24],[18,14],[19,14],[22,14],[22,24],[26,24],[27,24],[27,31],[29,24],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,19],[6,5],[6,19],[7,6],[7,3],[8,7],[8,6],[9,8],[9,29],[9,22],[10,9],[17,4],[18,17],[18,39],[19,18],[22,8],[22,27],[22,8],[26,17],[27,26],[29,22],[33,27],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #232","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["browsing_MP_code","A",7,1,13],["press_RUN_button","A",8,1,14],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",9,3,16],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",23,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,15],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,26],[9,15],[10,1],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[23,15],[23,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[7,3],[8,7],[8,6],[9,8],[9,31],[9,23],[10,9],[11,10],[18,4],[19,18],[19,41],[20,19],[23,8],[23,29],[23,8],[28,18],[29,28],[31,23],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #233","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",24,3,16],["receive_json_file","A",25,3,21],["visualize_trace","A",26,3,22],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,16],["write_abstract_syntax_tree","A",33,4,17],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,17],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,17],["run_Cpp_compiler","A",47,6,18],["run_executable","A",48,6,19],["produce_json_file","A",49,6,20] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,27],[19,15],[20,15],[24,15],[24,27],[25,15],[26,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[18,4],[19,18],[19,44],[20,19],[24,9],[24,30],[24,9],[25,24],[25,49],[26,25],[29,18],[30,29],[32,24],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #234","T",52,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["save_MP_file","A",11,1,24],["end_of_session","A",12,1,25],["MP_code_editor","R",13,2,0],["MP_GUI","R",16,3,0],["input_MP_code","A",19,3,4],["receive_json_file","A",20,3,9],["visualize_trace","A",21,3,10],["input_MP_code","A",25,3,16],["receive_json_file","A",26,3,21],["visualize_trace","A",27,3,22],["MP_parser","R",29,4,0],["perform_syntax_analysis","A",31,4,4],["write_abstract_syntax_tree","A",32,4,5],["perform_syntax_analysis","A",34,4,16],["write_abstract_syntax_tree","A",35,4,17],["Abstract_syntax_tree","R",36,5,0],["read_abstract_syntax_tree","A",38,5,5],["read_abstract_syntax_tree","A",40,5,17],["Trace_generator","R",41,6,0],["generate_Cpp_file","A",43,6,5],["run_Cpp_compiler","A",44,6,6],["run_executable","A",45,6,7],["produce_json_file","A",46,6,8],["generate_Cpp_file","A",48,6,17],["run_Cpp_compiler","A",49,6,18],["run_executable","A",50,6,19],["produce_json_file","A",51,6,20] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,29],[20,16],[21,16],[25,16],[25,29],[26,16],[27,16],[31,29],[32,29],[32,36],[34,29],[35,29],[35,36],[38,36],[38,41],[40,36],[40,41],[43,41],[44,41],[45,41],[46,41],[48,41],[49,41],[50,41],[51,41]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,27],[11,10],[11,27],[12,11],[19,4],[20,19],[20,46],[21,20],[25,9],[25,32],[25,9],[26,25],[26,51],[27,26],[31,19],[32,31],[34,25],[35,34],[35,38],[38,32],[40,35],[40,46],[43,38],[44,43],[45,44],[46,45],[48,40],[49,48],[50,49],[51,50]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #235","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",24,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,16],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,26],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[24,15],[24,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,31],[10,24],[11,10],[18,4],[19,18],[19,41],[20,19],[24,9],[24,29],[24,9],[28,18],[29,28],[31,24],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #236","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["MP_model_editing","A",8,1,14],["press_RUN_button","A",9,1,15],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["receive_json_file","A",20,4,9],["visualize_trace","A",21,4,10],["input_MP_code","A",25,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["write_abstract_syntax_tree","A",31,5,5],["perform_syntax_analysis","A",33,5,16],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,5],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,5],["run_Cpp_compiler","A",41,7,6],["run_executable","A",42,7,7],["produce_json_file","A",43,7,8] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,28],[10,16],[11,1],[11,16],[12,1],[19,16],[19,28],[20,16],[21,16],[25,16],[25,28],[30,28],[31,28],[31,35],[33,28],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,33],[10,25],[11,10],[12,11],[19,4],[20,19],[20,43],[21,20],[25,9],[25,31],[25,9],[30,19],[31,30],[33,25],[37,31],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #237","T",50,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["end_of_session","A",11,1,24],["MP_code_editor","R",12,2,0],["MP_GUI","R",15,3,0],["input_MP_code","A",18,3,4],["receive_json_file","A",19,3,9],["visualize_trace","A",20,3,10],["input_MP_code","A",24,3,16],["receive_json_file","A",25,3,21],["visualize_trace","A",26,3,22],["MP_parser","R",27,4,0],["perform_syntax_analysis","A",29,4,4],["write_abstract_syntax_tree","A",30,4,5],["perform_syntax_analysis","A",32,4,16],["write_abstract_syntax_tree","A",33,4,17],["Abstract_syntax_tree","R",34,5,0],["read_abstract_syntax_tree","A",36,5,5],["read_abstract_syntax_tree","A",38,5,17],["Trace_generator","R",39,6,0],["generate_Cpp_file","A",41,6,5],["run_Cpp_compiler","A",42,6,6],["run_executable","A",43,6,7],["produce_json_file","A",44,6,8],["generate_Cpp_file","A",46,6,17],["run_Cpp_compiler","A",47,6,18],["run_executable","A",48,6,19],["produce_json_file","A",49,6,20] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,27],[19,15],[20,15],[24,15],[24,27],[25,15],[26,15],[29,27],[30,27],[30,34],[32,27],[33,27],[33,34],[36,34],[36,39],[38,34],[38,39],[41,39],[42,39],[43,39],[44,39],[46,39],[47,39],[48,39],[49,39]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[18,4],[19,18],[19,44],[20,19],[24,9],[24,30],[24,9],[25,24],[25,49],[26,25],[29,18],[30,29],[32,24],[33,32],[33,36],[36,30],[38,33],[38,44],[41,36],[42,41],[43,42],[44,43],[46,38],[47,46],[48,47],[49,48]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #238","T",52,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["browse_event_trace","A",10,1,23],["save_MP_file","A",11,1,24],["end_of_session","A",12,1,25],["MP_code_editor","R",13,2,0],["MP_GUI","R",16,3,0],["input_MP_code","A",19,3,4],["receive_json_file","A",20,3,9],["visualize_trace","A",21,3,10],["input_MP_code","A",25,3,16],["receive_json_file","A",26,3,21],["visualize_trace","A",27,3,22],["MP_parser","R",29,4,0],["perform_syntax_analysis","A",31,4,4],["write_abstract_syntax_tree","A",32,4,5],["perform_syntax_analysis","A",34,4,16],["write_abstract_syntax_tree","A",35,4,17],["Abstract_syntax_tree","R",36,5,0],["read_abstract_syntax_tree","A",38,5,5],["read_abstract_syntax_tree","A",40,5,17],["Trace_generator","R",41,6,0],["generate_Cpp_file","A",43,6,5],["run_Cpp_compiler","A",44,6,6],["run_executable","A",45,6,7],["produce_json_file","A",46,6,8],["generate_Cpp_file","A",48,6,17],["run_Cpp_compiler","A",49,6,18],["run_executable","A",50,6,19],["produce_json_file","A",51,6,20] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,29],[20,16],[21,16],[25,16],[25,29],[26,16],[27,16],[31,29],[32,29],[32,36],[34,29],[35,29],[35,36],[38,36],[38,41],[40,36],[40,41],[43,41],[44,41],[45,41],[46,41],[48,41],[49,41],[50,41],[51,41]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,27],[11,10],[11,27],[12,11],[19,4],[20,19],[20,46],[21,20],[25,9],[25,32],[25,9],[26,25],[26,51],[27,26],[31,19],[32,31],[34,25],[35,34],[35,38],[38,32],[40,35],[40,46],[43,38],[44,43],[45,44],[46,45],[48,40],[49,48],[50,49],[51,50]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #239","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["receive_json_file","A",19,4,9],["visualize_trace","A",20,4,10],["input_MP_code","A",24,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["write_abstract_syntax_tree","A",29,5,5],["perform_syntax_analysis","A",31,5,16],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,5],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,5],["run_Cpp_compiler","A",39,7,6],["run_executable","A",40,7,7],["produce_json_file","A",41,7,8] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,26],[10,15],[11,1],[18,15],[18,26],[19,15],[20,15],[24,15],[24,26],[28,26],[29,26],[29,33],[31,26],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,20],[6,5],[6,20],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,31],[10,24],[11,10],[18,4],[19,18],[19,41],[20,19],[24,9],[24,29],[24,9],[28,18],[29,28],[31,24],[35,29],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #240","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browse_event_trace","A",5,1,11],["save_MP_file","A",6,1,12],["load_MP_file","A",7,1,13],["browsing_MP_code","A",8,1,14],["press_RUN_button","A",9,1,15],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",10,3,17],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["receive_json_file","A",20,4,9],["visualize_trace","A",21,4,10],["input_MP_code","A",25,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["write_abstract_syntax_tree","A",31,5,5],["perform_syntax_analysis","A",33,5,16],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,5],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,5],["run_Cpp_compiler","A",41,7,6],["run_executable","A",42,7,7],["produce_json_file","A",43,7,8] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,28],[10,16],[11,1],[11,16],[12,1],[19,16],[19,28],[20,16],[21,16],[25,16],[25,28],[30,28],[31,28],[31,35],[33,28],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,21],[6,5],[6,21],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,33],[10,25],[11,10],[12,11],[19,4],[20,19],[20,43],[21,20],[25,9],[25,31],[25,9],[30,19],[31,30],[33,25],[37,31],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #241","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,22],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,24],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,21],[9,8],[16,4],[19,7],[19,5],[19,7],[20,19],[20,37],[21,20],[24,16],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #242","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[17,4],[20,7],[20,5],[20,7],[21,20],[21,39],[22,21],[26,17],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #243","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,4],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,21],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[16,13],[16,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,2],[5,4],[5,23],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[16,4],[19,7],[19,5],[19,7],[23,16],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #244","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["MP_model_editing","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[17,14],[17,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[17,4],[20,7],[20,5],[20,7],[25,17],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #245","T",38,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["end_of_session","A",9,1,16],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["receive_json_file","A",20,4,13],["visualize_trace","A",21,4,14],["MP_parser","R",22,5,0],["perform_syntax_analysis","A",24,5,4],["perform_syntax_analysis","A",27,5,8],["write_abstract_syntax_tree","A",28,5,9],["Abstract_syntax_tree","R",29,6,0],["read_abstract_syntax_tree","A",31,6,9],["Trace_generator","R",32,7,0],["generate_Cpp_file","A",34,7,9],["run_Cpp_compiler","A",35,7,10],["run_executable","A",36,7,11],["produce_json_file","A",37,7,12] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,22],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[9,1],[16,13],[16,22],[19,13],[19,22],[20,13],[21,13],[24,22],[27,22],[28,22],[28,29],[31,29],[31,32],[34,32],[35,32],[36,32],[37,32]],
+[[3,2],[4,3],[4,2],[5,4],[5,24],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,21],[9,8],[16,4],[19,7],[19,5],[19,7],[20,19],[20,37],[21,20],[24,16],[27,19],[28,27],[31,28],[34,31],[35,34],[36,35],[37,36]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #246","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["browse_event_trace","A",8,1,15],["save_MP_file","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["receive_json_file","A",21,4,13],["visualize_trace","A",22,4,14],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,8],["write_abstract_syntax_tree","A",30,5,9],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,9],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,9],["run_Cpp_compiler","A",37,7,10],["run_executable","A",38,7,11],["produce_json_file","A",39,7,12] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[9,1],[9,14],[10,1],[17,14],[17,24],[20,14],[20,24],[21,14],[22,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,22],[9,8],[9,22],[10,9],[17,4],[20,7],[20,5],[20,7],[21,20],[21,39],[22,21],[26,17],[29,20],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #247","T",30,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["end_of_session","A",9,1,10],["MP_code_editor","R",10,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",13,4,0],["input_MP_code","A",16,4,4],["input_MP_code","A",19,4,8],["MP_parser","R",21,5,0],["perform_syntax_analysis","A",23,5,4],["perform_syntax_analysis","A",26,5,8],["Abstract_syntax_tree","R",28,6,0],["Trace_generator","R",29,7,0] ],
+
+[[2,1],[2,13],[3,1],[3,10],[4,1],[4,13],[5,1],[5,21],[5,13],[6,1],[6,10],[7,1],[7,13],[8,1],[8,21],[8,13],[9,1],[16,13],[16,21],[19,13],[19,21],[23,21],[26,21]],
+[[3,2],[4,3],[4,2],[5,4],[5,23],[5,16],[6,5],[6,3],[7,6],[7,5],[8,7],[8,26],[8,19],[9,8],[16,4],[19,7],[19,5],[19,7],[23,16],[26,19]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #248","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["browsing_MP_code","A",6,1,6],["press_RUN_button","A",7,1,7],["save_MP_file","A",9,1,10],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",8,3,9],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",20,4,8],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,8],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,11],[7,1],[7,14],[8,1],[8,23],[8,14],[9,1],[9,14],[10,1],[17,14],[17,23],[20,14],[20,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[6,3],[7,6],[7,5],[8,7],[8,28],[8,20],[9,8],[10,9],[17,4],[20,7],[20,5],[20,7],[25,17],[28,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #249","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #250","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #251","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #252","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #253","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #254","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #255","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #256","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["load_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #257","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #258","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #259","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #260","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["MP_model_editing","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #261","T",40,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["end_of_session","A",10,1,17],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["receive_json_file","A",22,4,14],["visualize_trace","A",23,4,15],["MP_parser","R",24,5,0],["perform_syntax_analysis","A",26,5,4],["perform_syntax_analysis","A",29,5,9],["write_abstract_syntax_tree","A",30,5,10],["Abstract_syntax_tree","R",31,6,0],["read_abstract_syntax_tree","A",33,6,10],["Trace_generator","R",34,7,0],["generate_Cpp_file","A",36,7,10],["run_Cpp_compiler","A",37,7,11],["run_executable","A",38,7,12],["produce_json_file","A",39,7,13] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,24],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[10,1],[17,14],[17,24],[21,14],[21,24],[22,14],[23,14],[26,24],[29,24],[30,24],[30,31],[33,31],[33,34],[36,34],[37,34],[38,34],[39,34]],
+[[3,2],[4,3],[4,2],[5,4],[5,26],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,23],[10,9],[17,4],[21,8],[21,5],[21,8],[22,21],[22,39],[23,22],[26,17],[29,21],[30,29],[33,30],[36,33],[37,36],[38,37],[39,38]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #262","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["browse_event_trace","A",9,1,16],["save_MP_file","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["receive_json_file","A",23,4,14],["visualize_trace","A",24,4,15],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,9],["write_abstract_syntax_tree","A",32,5,10],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,10],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,10],["run_Cpp_compiler","A",39,7,11],["run_executable","A",40,7,12],["produce_json_file","A",41,7,13] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[10,1],[10,15],[11,1],[18,15],[18,26],[22,15],[22,26],[23,15],[24,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,24],[10,9],[10,24],[11,10],[18,4],[22,8],[22,5],[22,8],[23,22],[23,41],[24,23],[28,18],[31,22],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #263","T",32,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["end_of_session","A",10,1,11],["MP_code_editor","R",11,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",14,4,0],["input_MP_code","A",17,4,4],["input_MP_code","A",21,4,9],["MP_parser","R",23,5,0],["perform_syntax_analysis","A",25,5,4],["perform_syntax_analysis","A",28,5,9],["Abstract_syntax_tree","R",30,6,0],["Trace_generator","R",31,7,0] ],
+
+[[2,1],[2,14],[3,1],[3,11],[4,1],[4,14],[5,1],[5,23],[5,14],[6,1],[6,14],[7,1],[7,11],[8,1],[8,14],[9,1],[9,23],[9,14],[10,1],[17,14],[17,23],[21,14],[21,23],[25,23],[28,23]],
+[[3,2],[4,3],[4,2],[5,4],[5,25],[5,17],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,28],[9,21],[10,9],[17,4],[21,8],[21,5],[21,8],[25,17],[28,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #264","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["browsing_MP_code","A",7,1,7],["press_RUN_button","A",8,1,8],["save_MP_file","A",10,1,11],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",9,3,10],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",22,4,9],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,9],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,12],[8,1],[8,15],[9,1],[9,25],[9,15],[10,1],[10,15],[11,1],[18,15],[18,25],[22,15],[22,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[7,3],[8,7],[8,6],[9,8],[9,30],[9,22],[10,9],[11,10],[18,4],[22,8],[22,5],[22,8],[27,18],[30,22]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #265","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["receive_json_file","A",24,4,15],["visualize_trace","A",25,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,10],["write_abstract_syntax_tree","A",32,5,11],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,11],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,11],["run_Cpp_compiler","A",39,7,12],["run_executable","A",40,7,13],["produce_json_file","A",41,7,14] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,26],[23,15],[23,26],[24,15],[25,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,25],[11,10],[18,4],[23,9],[23,5],[23,9],[24,23],[24,41],[25,24],[28,18],[31,23],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #266","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["receive_json_file","A",25,4,15],["visualize_trace","A",26,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["perform_syntax_analysis","A",33,5,10],["write_abstract_syntax_tree","A",34,5,11],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,11],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,11],["run_Cpp_compiler","A",41,7,12],["run_executable","A",42,7,13],["produce_json_file","A",43,7,14] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,28],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,28],[24,16],[24,28],[25,16],[26,16],[30,28],[33,28],[34,28],[34,35],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,30],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[11,26],[12,11],[19,4],[24,9],[24,5],[24,9],[25,24],[25,43],[26,25],[30,19],[33,24],[34,33],[37,34],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #267","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,10],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,25],[10,15],[11,1],[18,15],[18,25],[23,15],[23,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,30],[10,23],[11,10],[18,4],[23,9],[23,5],[23,9],[27,18],[30,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #268","T",36,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["MP_model_editing","A",8,1,8],["press_RUN_button","A",9,1,9],["save_MP_file","A",11,1,12],["end_of_session","A",12,1,13],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["MP_parser","R",27,5,0],["perform_syntax_analysis","A",29,5,4],["perform_syntax_analysis","A",32,5,10],["Abstract_syntax_tree","R",34,6,0],["Trace_generator","R",35,7,0] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,27],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,27],[10,16],[11,1],[11,16],[12,1],[19,16],[19,27],[24,16],[24,27],[29,27],[32,27]],
+[[3,2],[4,3],[4,2],[5,4],[5,29],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,32],[10,24],[11,10],[12,11],[19,4],[24,9],[24,5],[24,9],[29,19],[32,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #269","T",42,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["end_of_session","A",11,1,18],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["receive_json_file","A",24,4,15],["visualize_trace","A",25,4,16],["MP_parser","R",26,5,0],["perform_syntax_analysis","A",28,5,4],["perform_syntax_analysis","A",31,5,10],["write_abstract_syntax_tree","A",32,5,11],["Abstract_syntax_tree","R",33,6,0],["read_abstract_syntax_tree","A",35,6,11],["Trace_generator","R",36,7,0],["generate_Cpp_file","A",38,7,11],["run_Cpp_compiler","A",39,7,12],["run_executable","A",40,7,13],["produce_json_file","A",41,7,14] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,26],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[11,1],[18,15],[18,26],[23,15],[23,26],[24,15],[25,15],[28,26],[31,26],[32,26],[32,33],[35,33],[35,36],[38,36],[39,36],[40,36],[41,36]],
+[[3,2],[4,3],[4,2],[5,4],[5,28],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,25],[11,10],[18,4],[23,9],[23,5],[23,9],[24,23],[24,41],[25,24],[28,18],[31,23],[32,31],[35,32],[38,35],[39,38],[40,39],[41,40]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #270","T",44,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["browse_event_trace","A",10,1,17],["save_MP_file","A",11,1,18],["end_of_session","A",12,1,19],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["receive_json_file","A",25,4,15],["visualize_trace","A",26,4,16],["MP_parser","R",28,5,0],["perform_syntax_analysis","A",30,5,4],["perform_syntax_analysis","A",33,5,10],["write_abstract_syntax_tree","A",34,5,11],["Abstract_syntax_tree","R",35,6,0],["read_abstract_syntax_tree","A",37,6,11],["Trace_generator","R",38,7,0],["generate_Cpp_file","A",40,7,11],["run_Cpp_compiler","A",41,7,12],["run_executable","A",42,7,13],["produce_json_file","A",43,7,14] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,28],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[11,1],[11,16],[12,1],[19,16],[19,28],[24,16],[24,28],[25,16],[26,16],[30,28],[33,28],[34,28],[34,35],[37,35],[37,38],[40,38],[41,38],[42,38],[43,38]],
+[[3,2],[4,3],[4,2],[5,4],[5,30],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,26],[11,10],[11,26],[12,11],[19,4],[24,9],[24,5],[24,9],[25,24],[25,43],[26,25],[30,19],[33,24],[34,33],[37,34],[40,37],[41,40],[42,41],[43,42]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #271","T",34,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["end_of_session","A",11,1,12],["MP_code_editor","R",12,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",15,4,0],["input_MP_code","A",18,4,4],["input_MP_code","A",23,4,10],["MP_parser","R",25,5,0],["perform_syntax_analysis","A",27,5,4],["perform_syntax_analysis","A",30,5,10],["Abstract_syntax_tree","R",32,6,0],["Trace_generator","R",33,7,0] ],
+
+[[2,1],[2,15],[3,1],[3,12],[4,1],[4,15],[5,1],[5,25],[5,15],[6,1],[6,15],[7,1],[7,15],[8,1],[8,12],[9,1],[9,15],[10,1],[10,25],[10,15],[11,1],[18,15],[18,25],[23,15],[23,25],[27,25],[30,25]],
+[[3,2],[4,3],[4,2],[5,4],[5,27],[5,18],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,30],[10,23],[11,10],[18,4],[23,9],[23,5],[23,9],[27,18],[30,23]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000118371, 
+[ [" Scope 2 Trace #272","T",36,0,0],["User","R",1,1,0],["load_MP_file","A",2,1,1],["browsing_MP_code","A",3,1,2],["press_RUN_button","A",4,1,3],["save_MP_file","A",6,1,6],["load_MP_file","A",7,1,7],["browsing_MP_code","A",8,1,8],["press_RUN_button","A",9,1,9],["save_MP_file","A",11,1,12],["end_of_session","A",12,1,13],["MP_code_editor","R",13,2,0],["syntax_errors_detected","A",5,3,5],["syntax_errors_detected","A",10,3,11],["MP_GUI","R",16,4,0],["input_MP_code","A",19,4,4],["input_MP_code","A",24,4,10],["MP_parser","R",27,5,0],["perform_syntax_analysis","A",29,5,4],["perform_syntax_analysis","A",32,5,10],["Abstract_syntax_tree","R",34,6,0],["Trace_generator","R",35,7,0] ],
+
+[[2,1],[2,16],[3,1],[3,13],[4,1],[4,16],[5,1],[5,27],[5,16],[6,1],[6,16],[7,1],[7,16],[8,1],[8,13],[9,1],[9,16],[10,1],[10,27],[10,16],[11,1],[11,16],[12,1],[19,16],[19,27],[24,16],[24,27],[29,27],[32,27]],
+[[3,2],[4,3],[4,2],[5,4],[5,29],[5,19],[6,5],[7,6],[8,7],[8,3],[9,8],[9,7],[10,9],[10,32],[10,24],[11,10],[12,11],[19,4],[24,9],[24,5],[24,9],[29,19],[32,24]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["main component interactions",
+ [ [0, "User"] ,[1, "MP_code_editor"] ,[2, "MP_GUI"] ,[3, "MP_parser"] ,[4, "Abstract_syntax_tree"] ,[5, "Trace_generator"] ],
+ [],
+ [ [0,1,"interacts with"],[0,2,"interacts with"],[0,3,"interacts with"],[1,2,"interacts with"],[1,3,"interacts with"],[2,3,"interacts with"],[2,5,"interacts with"],[2,4,"interacts with"],[3,4,"interacts with"],[3,5,"interacts with"],[4,5,"interacts with"]] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example29_stack1_Bayesian_probability.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example29_stack1_Bayesian_probability.json
new file mode 100644
index 0000000..bdbbf72
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example29_stack1_Bayesian_probability.json
@@ -0,0 +1,35 @@
+{"traces":[
+
+["U", 0.4, 
+[ ["Trace 1 for scope 2 has probability 0.333333","T",2,0,0],["Stack","R",1,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.3, 
+[ ["push with probability 0.333333","T",3,0,0],["Trace 2 for scope 2 has probability 0.333333","T",4,0,1],["Stack","R",1,1,0],["push","A",2,1,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.225, 
+[ ["push with probability 0.333333","T",4,0,0],["push with probability 0.25","T",5,0,1],["Trace 3 for scope 2 has probability 0.25","T",6,0,2],["Stack","R",1,1,0],["push","A",2,1,1],["push","A",3,1,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.075, 
+[ ["push with probability 0.333333","T",4,0,0],["pop with probability 0.0833333","T",5,0,1],["Trace 4 for scope 2 has probability 0.0833333","T",6,0,2],["Stack","R",1,1,0],["push","A",2,1,1],["pop","A",3,1,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example30_Local_Report.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example30_Local_Report.json
new file mode 100644
index 0000000..c93a778
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example30_Local_Report.json
@@ -0,0 +1,283 @@
+{"traces":[
+
+["U", 0.133333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0] ],
+
+[[2,1],[2,3]],
+[]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 1","#writing= 1","#reading= 0","#working= 0"]}
+ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1] ],
+
+[[2,1],[2,3],[6,5]],
+[]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 2","#writing= 1","#reading= 0","#working= 1"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["Reader","R",5,2,0],["working","A",6,2,1],["working","A",7,2,2] ],
+
+[[2,1],[2,3],[6,5],[7,5]],
+[[7,6]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 3","#writing= 1","#reading= 0","#working= 2"]}
+ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,6]],
+[[5,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 4","#writing= 1","#reading= 1","#working= 0"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,3],[5,3],[5,6],[8,6]],
+[[5,2],[8,5]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 5","#writing= 1","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[2,3],[5,3],[5,6],[7,6]],
+[[5,2],[5,7]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 6","#writing= 1","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["File","R",3,1,0],["reading","A",5,1,1],["reading","A",6,1,2],["Reader","R",7,2,0] ],
+
+[[2,1],[2,3],[5,3],[5,7],[6,3],[6,7]],
+[[5,2],[6,5]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 7","#writing= 1","#reading= 2","#working= 0"]}
+ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0] ],
+
+[[2,1],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 8","#writing= 1","#reading= 0","#working= 1"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[3,1],[3,4],[7,6]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 9","#writing= 1","#reading= 0","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1],["working","A",8,2,2] ],
+
+[[2,1],[3,1],[3,4],[7,6],[8,6]],
+[[3,2],[8,7]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 10","#writing= 1","#reading= 0","#working= 3"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7]],
+[[3,2],[6,3]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 11","#writing= 1","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0],["working","A",9,2,2] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7],[9,7]],
+[[3,2],[6,3],[9,6]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 12","#writing= 1","#reading= 1","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,7],[8,7]],
+[[3,2],[6,3],[6,8]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 13","#writing= 1","#reading= 1","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["working","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,2],["reading","A",7,1,3],["Reader","R",8,2,0] ],
+
+[[2,1],[3,1],[3,4],[6,4],[6,8],[7,4],[7,8]],
+[[3,2],[6,3],[7,6]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 14","#writing= 1","#reading= 2","#working= 1"]}
+ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0] ],
+
+[[2,1],[2,4],[3,1]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 15","#writing= 1","#reading= 0","#working= 1"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1] ],
+
+[[2,1],[2,4],[3,1],[7,6]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 16","#writing= 1","#reading= 0","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["Reader","R",6,2,0],["working","A",7,2,1],["working","A",8,2,2] ],
+
+[[2,1],[2,4],[3,1],[7,6],[8,6]],
+[[3,2],[8,7]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 17","#writing= 1","#reading= 0","#working= 3"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7]],
+[[3,2],[6,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 18","#writing= 1","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0],["working","A",9,2,1] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7],[9,7]],
+[[3,2],[6,2],[9,6]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 19","#writing= 1","#reading= 1","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,7],[8,7]],
+[[3,2],[6,2],[6,8]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 20","#writing= 1","#reading= 1","#working= 2"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["working","A",3,0,2],["File","R",4,1,0],["reading","A",6,1,1],["reading","A",7,1,2],["Reader","R",8,2,0] ],
+
+[[2,1],[2,4],[3,1],[6,4],[6,8],[7,4],[7,8]],
+[[3,2],[6,2],[7,6]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 21","#writing= 1","#reading= 2","#working= 1"]}
+ ]}
+],
+
+["U", 0.0666667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 22","#writing= 2","#reading= 0","#working= 0"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0],["working","A",8,2,1] ],
+
+[[2,1],[2,4],[3,1],[3,4],[8,7]],
+[[3,2]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 23","#writing= 2","#reading= 0","#working= 1"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["Reader","R",7,2,0],["working","A",8,2,1],["working","A",9,2,2] ],
+
+[[2,1],[2,4],[3,1],[3,4],[8,7],[9,7]],
+[[3,2],[9,8]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 24","#writing= 2","#reading= 0","#working= 2"]}
+ ]}
+],
+
+["U", 0.0333333, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8]],
+[[3,2],[7,3]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 25","#writing= 2","#reading= 1","#working= 0"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0],["working","A",10,2,2] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8],[10,8]],
+[[3,2],[7,3],[10,7]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 26","#writing= 2","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["Reader","R",8,2,0],["working","A",9,2,1] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,8],[9,8]],
+[[3,2],[7,3],[7,9]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 27","#writing= 2","#reading= 1","#working= 1"]}
+ ]}
+],
+
+["U", 0.0166667, 
+[ ["Writer","R",1,0,0],["writing","A",2,0,1],["writing","A",3,0,2],["File","R",4,1,0],["reading","A",7,1,2],["reading","A",8,1,3],["Reader","R",9,2,0] ],
+
+[[2,1],[2,4],[3,1],[3,4],[7,4],[7,9],[8,4],[8,9]],
+[[3,2],[7,3],[8,7]]
+,{"VIEWS":[ 
+{"REPORT":["scope= 2 trace 28","#writing= 2","#reading= 2","#working= 0"]}
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example31_Global_report.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example31_Global_report.json
new file mode 100644
index 0000000..c895328
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example31_Global_report.json
@@ -0,0 +1,61 @@
+{"traces":[
+
+["U", 0.333333, 
+[ ["Sender","R",1,0,0],["Receiver","R",2,1,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["scope= 2","trace 3 sent 1 received 0 ratio 0","trace 5 sent 2 received 1 ratio 0.5","trace 6 sent 2 received 1 ratio 0.5","trace 7 sent 2 received 0 ratio 0","total traces 7"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example32_Local_graph.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example32_Local_graph.json
new file mode 100644
index 0000000..0e17551
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example32_Local_graph.json
@@ -0,0 +1,363 @@
+{"traces":[
+
+["U", 0.0701754, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["finish","A",4,0,3],["winner","A",5,0,4],["Judge","R",6,1,0],["provide_start_signal","A",7,1,1],["watch","A",8,1,2] ],
+
+[[2,1],[3,2],[4,2],[4,6],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[4,8],[5,4],[8,7]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 1 for scope 2",
+ [ [0, "0 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.140351, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Judge","R",5,1,0],["provide_start_signal","A",6,1,1],["watch","A",7,1,2] ],
+
+[[2,1],[3,2],[4,2],[6,5],[7,5]],
+[[3,6],[4,3],[7,6]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 2 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0701754, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["finish","A",5,0,4],["winner","A",6,0,5],["Judge","R",7,1,0],["provide_start_signal","A",8,1,1],["watch","A",9,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,7],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[5,9],[6,5],[9,8]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 3 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.140351, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Judge","R",6,1,0],["provide_start_signal","A",7,1,1],["watch","A",8,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[7,6],[8,6]],
+[[3,7],[4,3],[5,4],[8,7]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 4 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0701754, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["finish","A",6,0,5],["winner","A",7,0,6],["Judge","R",8,1,0],["provide_start_signal","A",9,1,1],["watch","A",10,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,8],[7,2],[9,8],[10,8]],
+[[3,9],[4,3],[5,4],[6,5],[6,10],[7,6],[10,9]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 5 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.140351, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["break","A",6,0,5],["Judge","R",7,1,0],["provide_start_signal","A",8,1,1],["watch","A",9,1,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[8,7],[9,7]],
+[[3,8],[4,3],[5,4],[6,5],[9,8]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 6 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.00584795, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["finish","A",4,0,3],["winner","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["finish","A",8,1,3],["Judge","R",9,2,0],["provide_start_signal","A",10,2,1],["watch","A",11,2,2] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,2],[6,1],[7,6],[8,6],[8,9],[10,9],[11,9]],
+[[3,10],[4,3],[4,11],[5,4],[7,10],[8,7],[8,4],[11,10]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 7 for scope 2",
+ [ [0, "0 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["finish","A",4,0,3],["winner","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["break","A",8,1,3],["Judge","R",9,2,0],["provide_start_signal","A",10,2,1],["watch","A",11,2,2] ],
+
+[[2,1],[3,2],[4,2],[4,9],[5,2],[6,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,10],[4,3],[4,11],[5,4],[7,10],[8,7],[11,10]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 8 for scope 2",
+ [ [0, "0 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["finish","A",7,1,3],["winner","A",8,1,4],["Judge","R",9,2,0],["provide_start_signal","A",10,2,1],["watch","A",11,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[7,9],[8,5],[10,9],[11,9]],
+[[3,10],[4,3],[6,10],[7,6],[7,11],[8,7],[11,10]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 9 for scope 2",
+ [ [0, "0 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["break","A",7,1,3],["Judge","R",8,2,0],["provide_start_signal","A",9,2,1],["watch","A",10,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[9,8],[10,8]],
+[[3,9],[4,3],[6,9],[7,6],[10,9]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 10 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["drive_lap","A",7,1,3],["finish","A",8,1,4],["winner","A",9,1,5],["Judge","R",10,2,0],["provide_start_signal","A",11,2,1],["watch","A",12,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[8,10],[9,5],[11,10],[12,10]],
+[[3,11],[4,3],[6,11],[7,6],[8,7],[8,12],[9,8],[12,11]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 11 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["drive_lap","A",7,1,3],["break","A",8,1,4],["Judge","R",9,2,0],["provide_start_signal","A",10,2,1],["watch","A",11,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[10,9],[11,9]],
+[[3,10],[4,3],[6,10],[7,6],[8,7],[11,10]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 12 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["drive_lap","A",7,1,3],["drive_lap","A",8,1,4],["finish","A",9,1,5],["winner","A",10,1,6],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[9,11],[10,5],[12,11],[13,11]],
+[[3,12],[4,3],[6,12],[7,6],[8,7],[9,8],[9,13],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 13 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["break","A",4,0,3],["Car","C",5,1,1],["Start","A",6,1,2],["drive_lap","A",7,1,3],["drive_lap","A",8,1,4],["break","A",9,1,5],["Judge","R",10,2,0],["provide_start_signal","A",11,2,1],["watch","A",12,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[6,5],[7,5],[8,5],[9,5],[11,10],[12,10]],
+[[3,11],[4,3],[6,11],[7,6],[8,7],[9,8],[12,11]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 14 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["finish","A",5,0,4],["winner","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["break","A",9,1,3],["Judge","R",10,2,0],["provide_start_signal","A",11,2,1],["watch","A",12,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,10],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[5,12],[6,5],[8,11],[9,8],[12,11]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 15 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.00584795, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["finish","A",5,0,4],["winner","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["drive_lap","A",9,1,3],["finish","A",10,1,4],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,11],[6,2],[7,1],[8,7],[9,7],[10,7],[10,11],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[5,13],[6,5],[8,12],[9,8],[10,9],[10,5],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 16 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["finish","A",5,0,4],["winner","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["drive_lap","A",9,1,3],["break","A",10,1,4],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[5,11],[6,2],[7,1],[8,7],[9,7],[10,7],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[5,13],[6,5],[8,12],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 17 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["break","A",8,1,3],["Judge","R",9,2,0],["provide_start_signal","A",10,2,1],["watch","A",11,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[10,9],[11,9]],
+[[3,10],[4,3],[5,4],[7,10],[8,7],[11,10]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 18 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["drive_lap","A",8,1,3],["finish","A",9,1,4],["winner","A",10,1,5],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[9,11],[10,6],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[7,12],[8,7],[9,8],[9,13],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 19 for scope 2",
+ [ [0, "1 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["drive_lap","A",8,1,3],["break","A",9,1,4],["Judge","R",10,2,0],["provide_start_signal","A",11,2,1],["watch","A",12,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[7,11],[8,7],[9,8],[12,11]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 20 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["drive_lap","A",8,1,3],["drive_lap","A",9,1,4],["finish","A",10,1,5],["winner","A",11,1,6],["Judge","R",12,2,0],["provide_start_signal","A",13,2,1],["watch","A",14,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[10,6],[10,12],[11,6],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[7,13],[8,7],[9,8],[10,9],[10,14],[11,10],[14,13]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 21 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["break","A",5,0,4],["Car","C",6,1,1],["Start","A",7,1,2],["drive_lap","A",8,1,3],["drive_lap","A",9,1,4],["break","A",10,1,5],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,1],[7,6],[8,6],[9,6],[10,6],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[7,12],[8,7],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 22 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["finish","A",6,0,5],["winner","A",7,0,6],["Car","C",8,1,1],["Start","A",9,1,2],["break","A",10,1,3],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,11],[7,2],[8,1],[9,8],[10,8],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[6,5],[6,13],[7,6],[9,12],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 23 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["finish","A",6,0,5],["winner","A",7,0,6],["Car","C",8,1,1],["Start","A",9,1,2],["drive_lap","A",10,1,3],["break","A",11,1,4],["Judge","R",12,2,0],["provide_start_signal","A",13,2,1],["watch","A",14,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,12],[7,2],[8,1],[9,8],[10,8],[11,8],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[6,5],[6,14],[7,6],[9,13],[10,9],[11,10],[14,13]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 24 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.00584795, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["finish","A",6,0,5],["winner","A",7,0,6],["Car","C",8,1,1],["Start","A",9,1,2],["drive_lap","A",10,1,3],["drive_lap","A",11,1,4],["finish","A",12,1,5],["Judge","R",13,2,0],["provide_start_signal","A",14,2,1],["watch","A",15,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,13],[7,2],[8,1],[9,8],[10,8],[11,8],[12,8],[12,13],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[6,15],[7,6],[9,14],[10,9],[11,10],[12,11],[12,6],[15,14]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 25 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["finish","A",6,0,5],["winner","A",7,0,6],["Car","C",8,1,1],["Start","A",9,1,2],["drive_lap","A",10,1,3],["drive_lap","A",11,1,4],["break","A",12,1,5],["Judge","R",13,2,0],["provide_start_signal","A",14,2,1],["watch","A",15,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[6,13],[7,2],[8,1],[9,8],[10,8],[11,8],[12,8],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[6,15],[7,6],[9,14],[10,9],[11,10],[12,11],[15,14]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 26 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["break","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["break","A",9,1,3],["Judge","R",10,2,0],["provide_start_signal","A",11,2,1],["watch","A",12,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[11,10],[12,10]],
+[[3,11],[4,3],[5,4],[6,5],[8,11],[9,8],[12,11]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 27 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["break","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["drive_lap","A",9,1,3],["break","A",10,1,4],["Judge","R",11,2,0],["provide_start_signal","A",12,2,1],["watch","A",13,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[12,11],[13,11]],
+[[3,12],[4,3],[5,4],[6,5],[8,12],[9,8],[10,9],[13,12]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 28 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+],
+
+["U", 0.0116959, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["break","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["drive_lap","A",9,1,3],["drive_lap","A",10,1,4],["finish","A",11,1,5],["winner","A",12,1,6],["Judge","R",13,2,0],["provide_start_signal","A",14,2,1],["watch","A",15,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[11,13],[12,7],[14,13],[15,13]],
+[[3,14],[4,3],[5,4],[6,5],[8,14],[9,8],[10,9],[11,10],[11,15],[12,11],[15,14]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 29 for scope 2",
+ [ [0, "2 laps"] ,[1, "Start"] ,[2, "finish"] ,[3, "winner"] ],
+ [ [0,2,"followed by"],[1,0,"followed by"],[2,3,"followed by"]],
+ [] ]} ]}
+],
+
+["U", 0.0233918, 
+[ ["Cars","R",1,0,0],["Car","C",2,0,1],["Start","A",3,0,2],["drive_lap","A",4,0,3],["drive_lap","A",5,0,4],["break","A",6,0,5],["Car","C",7,1,1],["Start","A",8,1,2],["drive_lap","A",9,1,3],["drive_lap","A",10,1,4],["break","A",11,1,5],["Judge","R",12,2,0],["provide_start_signal","A",13,2,1],["watch","A",14,2,2] ],
+
+[[2,1],[3,2],[4,2],[5,2],[6,2],[7,1],[8,7],[9,7],[10,7],[11,7],[13,12],[14,12]],
+[[3,13],[4,3],[5,4],[6,5],[8,13],[9,8],[10,9],[11,10],[14,13]]
+,{"VIEWS":[ 
+{"GRAPH":["winner trace 30 for scope 2",
+ [],
+ [],
+ [] ]} ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example34_Graph_as_data_structure.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example34_Graph_as_data_structure.json
new file mode 100644
index 0000000..fceb949
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example34_Graph_as_data_structure.json
@@ -0,0 +1,121 @@
+{"traces":[
+
+["U", 0.166667, 
+[ ["A","R",1,0,0],["B","R",2,1,0],["c","A",3,1,1] ],
+
+[[3,2]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["A","R",1,0,0],["B","R",2,1,0],["c","A",3,1,1],["c","A",4,1,2] ],
+
+[[3,2],[4,2]],
+[[4,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1],["c","A",5,1,2] ],
+
+[[2,1],[4,3],[5,3]],
+[[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0833333, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["B","R",3,1,0],["c","A",4,1,1],["c","A",5,1,2] ],
+
+[[2,1],[4,3],[5,3]],
+[[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["a","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1] ],
+
+[[2,1],[3,1],[5,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["a","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1],["c","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[6,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["b","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1] ],
+
+[[2,1],[3,1],[5,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["b","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1],["c","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[6,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["a","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1] ],
+
+[[2,1],[3,1],[5,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["a","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1],["c","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[6,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["b","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1] ],
+
+[[2,1],[3,1],[5,4]],
+[[3,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0416667, 
+[ ["A","R",1,0,0],["b","A",2,0,1],["b","A",3,0,2],["B","R",4,1,0],["c","A",5,1,1],["c","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[6,5]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Total event count as Report","A event count: 14","B event count: 14","c event count: 21","a event count: 10","b event count: 10"]}
+,
+{"GRAPH":["Total event count as graph for scope 2",
+ [ [0, "A"] ,[1, "trace 1"] ,[2, "B"] ,[3, "c"] ,[4, "trace 2"] ,[5, "trace 3"] ,[6, "a"] ,[7, "trace 4"] ,[8, "trace 5"] ,[9, "b"] ,[10, "trace 6"] ,[11, "trace 7"] ,[12, "trace 8"] ,[13, "trace 9"] ,[14, "trace 10"] ,[15, "trace 11"] ,[16, "trace 12"] ,[17, "trace 13"] ,[18, "trace 14"] ,[19, "14"] ,[20, "14"] ,[21, "21"] ,[22, "10"] ,[23, "10"] ],
+ [ [0,1,"in trace"],[0,4,"in trace"],[0,5,"in trace"],[0,7,"in trace"],[0,8,"in trace"],[0,10,"in trace"],[0,11,"in trace"],[0,12,"in trace"],[0,13,"in trace"],[0,14,"in trace"],[0,15,"in trace"],[0,16,"in trace"],[0,17,"in trace"],[0,18,"in trace"],[0,19,"total count"],[2,1,"in trace"],[2,4,"in trace"],[2,5,"in trace"],[2,7,"in trace"],[2,8,"in trace"],[2,10,"in trace"],[2,11,"in trace"],[2,12,"in trace"],[2,13,"in trace"],[2,14,"in trace"],[2,15,"in trace"],[2,16,"in trace"],[2,17,"in trace"],[2,18,"in trace"],[2,20,"total count"],[3,1,"in trace"],[3,4,"in trace"],[3,5,"in trace"],[3,7,"in trace"],[3,8,"in trace"],[3,10,"in trace"],[3,11,"in trace"],[3,12,"in trace"],[3,13,"in trace"],[3,14,"in trace"],[3,15,"in trace"],[3,16,"in trace"],[3,17,"in trace"],[3,18,"in trace"],[3,21,"total count"],[6,5,"in trace"],[6,7,"in trace"],[6,11,"in trace"],[6,12,"in trace"],[6,13,"in trace"],[6,14,"in trace"],[6,15,"in trace"],[6,16,"in trace"],[6,22,"total count"],[9,8,"in trace"],[9,10,"in trace"],[9,13,"in trace"],[9,14,"in trace"],[9,15,"in trace"],[9,16,"in trace"],[9,17,"in trace"],[9,18,"in trace"],[9,23,"total count"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example35_Finite_State_Diagram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example35_Finite_State_Diagram.json
new file mode 100644
index 0000000..6c20020
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example35_Finite_State_Diagram.json
@@ -0,0 +1,367 @@
+{"traces":[
+
+["U", 0.161616, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,8],["a","A",10,1,9],["S2","A",11,1,10],["S2_to_End","C",12,1,11],["empty","A",13,1,12],["End","A",14,1,13],["S3_behavior","R",15,2,0],["S3","A",18,2,6],["S3_to_S4","C",19,2,7],["b","A",20,2,8],["S4_behavior","R",21,3,0],["S4","A",24,3,7] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,15],[7,6],[9,8],[9,21],[10,9],[11,8],[12,8],[13,12],[14,8],[18,15],[19,15],[19,21],[20,19],[24,21]],
+[[3,2],[5,3],[6,5],[9,24],[11,9],[12,11],[14,12],[18,6],[19,18],[24,19]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.161616, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,11],["a","A",10,1,12],["S2","A",11,1,13],["S2_to_End","C",12,1,14],["empty","A",13,1,15],["End","A",14,1,16],["S3_behavior","R",15,2,0],["S3","A",18,2,6],["S3_to_S3","C",19,2,7],["a","A",20,2,8],["S3","A",21,2,9],["S3_to_S4","C",22,2,10],["b","A",23,2,11],["S4_behavior","R",24,3,0],["S4","A",27,3,10] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,15],[7,6],[9,8],[9,24],[10,9],[11,8],[12,8],[13,12],[14,8],[18,15],[19,15],[20,19],[21,15],[22,15],[22,24],[23,22],[27,24]],
+[[3,2],[5,3],[6,5],[9,27],[11,9],[12,11],[14,12],[18,6],[19,18],[21,19],[22,21],[27,22]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.161616, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,14],["a","A",10,1,15],["S2","A",11,1,16],["S2_to_End","C",12,1,17],["empty","A",13,1,18],["End","A",14,1,19],["S3_behavior","R",15,2,0],["S3","A",18,2,6],["S3_to_S3","C",19,2,7],["a","A",20,2,8],["S3","A",21,2,9],["S3_to_S3","C",22,2,10],["a","A",23,2,11],["S3","A",24,2,12],["S3_to_S4","C",25,2,13],["b","A",26,2,14],["S4_behavior","R",27,3,0],["S4","A",30,3,13] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,15],[7,6],[9,8],[9,27],[10,9],[11,8],[12,8],[13,12],[14,8],[18,15],[19,15],[20,19],[21,15],[22,15],[23,22],[24,15],[25,15],[25,27],[26,25],[30,27]],
+[[3,2],[5,3],[6,5],[9,30],[11,9],[12,11],[14,12],[18,6],[19,18],[21,19],[22,21],[24,22],[25,24],[30,25]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.121212, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,7],["a","A",10,1,8],["S2","A",11,1,9],["S2_to_End","C",12,1,10],["empty","A",13,1,11],["End","A",14,1,12],["S3_behavior","R",15,2,0],["S4_behavior","R",16,3,0],["S4","A",19,3,6] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,16],[7,6],[9,8],[9,16],[10,9],[11,8],[12,8],[13,12],[14,8],[19,16]],
+[[3,2],[5,3],[6,5],[9,19],[11,9],[12,11],[14,12],[19,6]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.121212, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_behavior","R",8,1,0],["S4_to_S2","C",9,1,7],["a","A",10,1,8],["S2","A",11,1,9],["S2_to_End","C",12,1,10],["empty","A",13,1,11],["End","A",14,1,12],["S3_behavior","R",15,2,0],["S4_behavior","R",16,3,0],["S4","A",19,3,6] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,16],[7,6],[9,8],[9,16],[10,9],[11,8],[12,8],[13,12],[14,8],[19,16]],
+[[3,2],[5,3],[6,5],[9,19],[11,9],[12,11],[14,12],[19,6]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,10],["b","A",9,0,11],["S1","A",10,0,12],["S1_to_S3","C",11,0,13],["a","A",12,0,14],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,8],["a","A",15,1,9],["S2","A",16,1,10],["S4_to_S2","C",19,1,16],["a","A",20,1,17],["S2","A",21,1,18],["S2_to_End","C",22,1,19],["empty","A",23,1,20],["End","A",24,1,21],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S4","C",29,2,7],["b","A",30,2,8],["S3","A",33,2,14],["S3_to_S4","C",34,2,15],["b","A",35,2,16],["S4_behavior","R",36,3,0],["S4","A",39,3,7],["S4","A",44,3,15] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,36],[15,14],[16,13],[19,13],[19,36],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,36],[30,29],[33,25],[34,25],[34,36],[35,34],[39,36],[44,36]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,29],[14,39],[16,14],[19,8],[19,44],[21,19],[22,21],[24,22],[28,6],[29,28],[33,11],[34,33],[34,14],[39,29],[44,34]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "S1"] ,[6, "S3"] ,[7, "S4"] ,[8, "S2"] ,[9, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,10],["b","A",9,0,11],["S1","A",10,0,12],["S1_to_S3","C",11,0,13],["a","A",12,0,14],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,8],["a","A",15,1,9],["S2","A",16,1,10],["S4_to_S2","C",19,1,19],["a","A",20,1,20],["S2","A",21,1,21],["S2_to_End","C",22,1,22],["empty","A",23,1,23],["End","A",24,1,24],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S4","C",29,2,7],["b","A",30,2,8],["S3","A",33,2,14],["S3_to_S3","C",34,2,15],["a","A",35,2,16],["S3","A",36,2,17],["S3_to_S4","C",37,2,18],["b","A",38,2,19],["S4_behavior","R",39,3,0],["S4","A",42,3,7],["S4","A",47,3,18] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,39],[15,14],[16,13],[19,13],[19,39],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,39],[30,29],[33,25],[34,25],[35,34],[36,25],[37,25],[37,39],[38,37],[42,39],[47,39]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,29],[14,42],[16,14],[19,8],[19,47],[21,19],[22,21],[24,22],[28,6],[29,28],[33,11],[34,33],[36,34],[37,36],[37,14],[42,29],[47,37]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "S1"] ,[6, "S3"] ,[7, "S3"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"a"],[7,8,"b"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,10],["b","A",9,0,11],["S1","A",10,0,12],["S1_to_S3","C",11,0,13],["a","A",12,0,14],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,8],["a","A",15,1,9],["S2","A",16,1,10],["S4_to_S2","C",19,1,22],["a","A",20,1,23],["S2","A",21,1,24],["S2_to_End","C",22,1,25],["empty","A",23,1,26],["End","A",24,1,27],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S4","C",29,2,7],["b","A",30,2,8],["S3","A",33,2,14],["S3_to_S3","C",34,2,15],["a","A",35,2,16],["S3","A",36,2,17],["S3_to_S3","C",37,2,18],["a","A",38,2,19],["S3","A",39,2,20],["S3_to_S4","C",40,2,21],["b","A",41,2,22],["S4_behavior","R",42,3,0],["S4","A",45,3,7],["S4","A",50,3,21] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,42],[15,14],[16,13],[19,13],[19,42],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,42],[30,29],[33,25],[34,25],[35,34],[36,25],[37,25],[38,37],[39,25],[40,25],[40,42],[41,40],[45,42],[50,42]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,29],[14,45],[16,14],[19,8],[19,50],[21,19],[22,21],[24,22],[28,6],[29,28],[33,11],[34,33],[36,34],[37,36],[39,37],[40,39],[40,14],[45,29],[50,40]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "S1"] ,[6, "S3"] ,[7, "S3"] ,[8, "S3"] ,[9, "S4"] ,[10, "S2"] ,[11, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"a"],[7,8,"a"],[8,9,"b"],[9,10,"a"],[10,11,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,13],["b","A",9,0,14],["S1","A",10,0,15],["S1_to_S3","C",11,0,16],["a","A",12,0,17],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,11],["a","A",15,1,12],["S2","A",16,1,13],["S4_to_S2","C",19,1,19],["a","A",20,1,20],["S2","A",21,1,21],["S2_to_End","C",22,1,22],["empty","A",23,1,23],["End","A",24,1,24],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S4","C",32,2,10],["b","A",33,2,11],["S3","A",36,2,17],["S3_to_S4","C",37,2,18],["b","A",38,2,19],["S4_behavior","R",39,3,0],["S4","A",42,3,10],["S4","A",47,3,18] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,39],[15,14],[16,13],[19,13],[19,39],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,39],[33,32],[36,25],[37,25],[37,39],[38,37],[42,39],[47,39]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,32],[14,42],[16,14],[19,8],[19,47],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[36,11],[37,36],[37,14],[42,32],[47,37]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "S1"] ,[7, "S3"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"b"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,13],["b","A",9,0,14],["S1","A",10,0,15],["S1_to_S3","C",11,0,16],["a","A",12,0,17],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,11],["a","A",15,1,12],["S2","A",16,1,13],["S4_to_S2","C",19,1,22],["a","A",20,1,23],["S2","A",21,1,24],["S2_to_End","C",22,1,25],["empty","A",23,1,26],["End","A",24,1,27],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S4","C",32,2,10],["b","A",33,2,11],["S3","A",36,2,17],["S3_to_S3","C",37,2,18],["a","A",38,2,19],["S3","A",39,2,20],["S3_to_S4","C",40,2,21],["b","A",41,2,22],["S4_behavior","R",42,3,0],["S4","A",45,3,10],["S4","A",50,3,21] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,42],[15,14],[16,13],[19,13],[19,42],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,42],[33,32],[36,25],[37,25],[38,37],[39,25],[40,25],[40,42],[41,40],[45,42],[50,42]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,32],[14,45],[16,14],[19,8],[19,50],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[36,11],[37,36],[39,37],[40,39],[40,14],[45,32],[50,40]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "S1"] ,[7, "S3"] ,[8, "S3"] ,[9, "S4"] ,[10, "S2"] ,[11, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"a"],[8,9,"b"],[9,10,"a"],[10,11,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,13],["b","A",9,0,14],["S1","A",10,0,15],["S1_to_S3","C",11,0,16],["a","A",12,0,17],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,11],["a","A",15,1,12],["S2","A",16,1,13],["S4_to_S2","C",19,1,25],["a","A",20,1,26],["S2","A",21,1,27],["S2_to_End","C",22,1,28],["empty","A",23,1,29],["End","A",24,1,30],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S4","C",32,2,10],["b","A",33,2,11],["S3","A",36,2,17],["S3_to_S3","C",37,2,18],["a","A",38,2,19],["S3","A",39,2,20],["S3_to_S3","C",40,2,21],["a","A",41,2,22],["S3","A",42,2,23],["S3_to_S4","C",43,2,24],["b","A",44,2,25],["S4_behavior","R",45,3,0],["S4","A",48,3,10],["S4","A",53,3,24] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,45],[15,14],[16,13],[19,13],[19,45],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,45],[33,32],[36,25],[37,25],[38,37],[39,25],[40,25],[41,40],[42,25],[43,25],[43,45],[44,43],[48,45],[53,45]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,32],[14,48],[16,14],[19,8],[19,53],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[36,11],[37,36],[39,37],[40,39],[42,40],[43,42],[43,14],[48,32],[53,43]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "S1"] ,[7, "S3"] ,[8, "S3"] ,[9, "S3"] ,[10, "S4"] ,[11, "S2"] ,[12, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"a"],[8,9,"a"],[9,10,"b"],[10,11,"a"],[11,12,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,16],["b","A",9,0,17],["S1","A",10,0,18],["S1_to_S3","C",11,0,19],["a","A",12,0,20],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,14],["a","A",15,1,15],["S2","A",16,1,16],["S4_to_S2","C",19,1,22],["a","A",20,1,23],["S2","A",21,1,24],["S2_to_End","C",22,1,25],["empty","A",23,1,26],["End","A",24,1,27],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S3","C",32,2,10],["a","A",33,2,11],["S3","A",34,2,12],["S3_to_S4","C",35,2,13],["b","A",36,2,14],["S3","A",39,2,20],["S3_to_S4","C",40,2,21],["b","A",41,2,22],["S4_behavior","R",42,3,0],["S4","A",45,3,13],["S4","A",50,3,21] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,42],[15,14],[16,13],[19,13],[19,42],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,42],[36,35],[39,25],[40,25],[40,42],[41,40],[45,42],[50,42]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,35],[14,45],[16,14],[19,8],[19,50],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[34,32],[35,34],[39,11],[40,39],[40,14],[45,35],[50,40]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "S1"] ,[8, "S3"] ,[9, "S4"] ,[10, "S2"] ,[11, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"b"],[9,10,"a"],[10,11,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,16],["b","A",9,0,17],["S1","A",10,0,18],["S1_to_S3","C",11,0,19],["a","A",12,0,20],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,14],["a","A",15,1,15],["S2","A",16,1,16],["S4_to_S2","C",19,1,25],["a","A",20,1,26],["S2","A",21,1,27],["S2_to_End","C",22,1,28],["empty","A",23,1,29],["End","A",24,1,30],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S3","C",32,2,10],["a","A",33,2,11],["S3","A",34,2,12],["S3_to_S4","C",35,2,13],["b","A",36,2,14],["S3","A",39,2,20],["S3_to_S3","C",40,2,21],["a","A",41,2,22],["S3","A",42,2,23],["S3_to_S4","C",43,2,24],["b","A",44,2,25],["S4_behavior","R",45,3,0],["S4","A",48,3,13],["S4","A",53,3,24] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,45],[15,14],[16,13],[19,13],[19,45],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,45],[36,35],[39,25],[40,25],[41,40],[42,25],[43,25],[43,45],[44,43],[48,45],[53,45]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,35],[14,48],[16,14],[19,8],[19,53],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[34,32],[35,34],[39,11],[40,39],[42,40],[43,42],[43,14],[48,35],[53,43]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "S1"] ,[8, "S3"] ,[9, "S3"] ,[10, "S4"] ,[11, "S2"] ,[12, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"a"],[9,10,"b"],[10,11,"a"],[11,12,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.013468, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,16],["b","A",9,0,17],["S1","A",10,0,18],["S1_to_S3","C",11,0,19],["a","A",12,0,20],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,14],["a","A",15,1,15],["S2","A",16,1,16],["S4_to_S2","C",19,1,28],["a","A",20,1,29],["S2","A",21,1,30],["S2_to_End","C",22,1,31],["empty","A",23,1,32],["End","A",24,1,33],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S3","C",32,2,10],["a","A",33,2,11],["S3","A",34,2,12],["S3_to_S4","C",35,2,13],["b","A",36,2,14],["S3","A",39,2,20],["S3_to_S3","C",40,2,21],["a","A",41,2,22],["S3","A",42,2,23],["S3_to_S3","C",43,2,24],["a","A",44,2,25],["S3","A",45,2,26],["S3_to_S4","C",46,2,27],["b","A",47,2,28],["S4_behavior","R",48,3,0],["S4","A",51,3,13],["S4","A",56,3,27] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,48],[15,14],[16,13],[19,13],[19,48],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,48],[36,35],[39,25],[40,25],[41,40],[42,25],[43,25],[44,43],[45,25],[46,25],[46,48],[47,46],[51,48],[56,48]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,35],[14,51],[16,14],[19,8],[19,56],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[34,32],[35,34],[39,11],[40,39],[42,40],[43,42],[45,43],[46,45],[46,14],[51,35],[56,46]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "S1"] ,[8, "S3"] ,[9, "S3"] ,[10, "S3"] ,[11, "S4"] ,[12, "S2"] ,[13, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"a"],[9,10,"a"],[10,11,"b"],[11,12,"a"],[12,13,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,10],["b","A",9,0,11],["S1","A",10,0,12],["S1_to_S4","C",11,0,13],["a","A",12,0,14],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,8],["a","A",15,1,9],["S2","A",16,1,10],["S4_to_S2","C",19,1,15],["a","A",20,1,16],["S2","A",21,1,17],["S2_to_End","C",22,1,18],["empty","A",23,1,19],["End","A",24,1,20],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S4","C",29,2,7],["b","A",30,2,8],["S4_behavior","R",31,3,0],["S4","A",34,3,7],["S4","A",39,3,14] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,31],[12,11],[14,13],[14,31],[15,14],[16,13],[19,13],[19,31],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,31],[30,29],[34,31],[39,31]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,34],[16,14],[19,8],[19,39],[21,19],[22,21],[24,22],[28,6],[29,28],[34,29],[39,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "S1"] ,[6, "S4"] ,[7, "S2"] ,[8, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"a"],[7,8,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,13],["b","A",9,0,14],["S1","A",10,0,15],["S1_to_S4","C",11,0,16],["a","A",12,0,17],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,11],["a","A",15,1,12],["S2","A",16,1,13],["S4_to_S2","C",19,1,18],["a","A",20,1,19],["S2","A",21,1,20],["S2_to_End","C",22,1,21],["empty","A",23,1,22],["End","A",24,1,23],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S4","C",32,2,10],["b","A",33,2,11],["S4_behavior","R",34,3,0],["S4","A",37,3,10],["S4","A",42,3,17] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,34],[12,11],[14,13],[14,34],[15,14],[16,13],[19,13],[19,34],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,34],[33,32],[37,34],[42,34]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,37],[16,14],[19,8],[19,42],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[37,32],[42,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "S1"] ,[7, "S4"] ,[8, "S2"] ,[9, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"a"],[8,9,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,16],["b","A",9,0,17],["S1","A",10,0,18],["S1_to_S4","C",11,0,19],["a","A",12,0,20],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,14],["a","A",15,1,15],["S2","A",16,1,16],["S4_to_S2","C",19,1,21],["a","A",20,1,22],["S2","A",21,1,23],["S2_to_End","C",22,1,24],["empty","A",23,1,25],["End","A",24,1,26],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S3","C",32,2,10],["a","A",33,2,11],["S3","A",34,2,12],["S3_to_S4","C",35,2,13],["b","A",36,2,14],["S4_behavior","R",37,3,0],["S4","A",40,3,13],["S4","A",45,3,20] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,37],[12,11],[14,13],[14,37],[15,14],[16,13],[19,13],[19,37],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,37],[36,35],[40,37],[45,37]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,40],[16,14],[19,8],[19,45],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[34,32],[35,34],[40,35],[45,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "S1"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,10],["b","A",9,0,11],["S1","A",10,0,12],["S1_to_S4","C",11,0,13],["b","A",12,0,14],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,8],["a","A",15,1,9],["S2","A",16,1,10],["S4_to_S2","C",19,1,15],["a","A",20,1,16],["S2","A",21,1,17],["S2_to_End","C",22,1,18],["empty","A",23,1,19],["End","A",24,1,20],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S4","C",29,2,7],["b","A",30,2,8],["S4_behavior","R",31,3,0],["S4","A",34,3,7],["S4","A",39,3,14] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,31],[12,11],[14,13],[14,31],[15,14],[16,13],[19,13],[19,31],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,31],[30,29],[34,31],[39,31]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,34],[16,14],[19,8],[19,39],[21,19],[22,21],[24,22],[28,6],[29,28],[34,29],[39,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "S1"] ,[6, "S4"] ,[7, "S2"] ,[8, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"b"],[3,4,"a"],[4,5,"b"],[5,6,"b"],[6,7,"a"],[7,8,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,13],["b","A",9,0,14],["S1","A",10,0,15],["S1_to_S4","C",11,0,16],["b","A",12,0,17],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,11],["a","A",15,1,12],["S2","A",16,1,13],["S4_to_S2","C",19,1,18],["a","A",20,1,19],["S2","A",21,1,20],["S2_to_End","C",22,1,21],["empty","A",23,1,22],["End","A",24,1,23],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S4","C",32,2,10],["b","A",33,2,11],["S4_behavior","R",34,3,0],["S4","A",37,3,10],["S4","A",42,3,17] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,34],[12,11],[14,13],[14,34],[15,14],[16,13],[19,13],[19,34],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,34],[33,32],[37,34],[42,34]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,37],[16,14],[19,8],[19,42],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[37,32],[42,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S4"] ,[5, "S2"] ,[6, "S1"] ,[7, "S4"] ,[8, "S2"] ,[9, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"b"],[7,8,"a"],[8,9,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S3","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,16],["b","A",9,0,17],["S1","A",10,0,18],["S1_to_S4","C",11,0,19],["b","A",12,0,20],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,14],["a","A",15,1,15],["S2","A",16,1,16],["S4_to_S2","C",19,1,21],["a","A",20,1,22],["S2","A",21,1,23],["S2_to_End","C",22,1,24],["empty","A",23,1,25],["End","A",24,1,26],["S3_behavior","R",25,2,0],["S3","A",28,2,6],["S3_to_S3","C",29,2,7],["a","A",30,2,8],["S3","A",31,2,9],["S3_to_S3","C",32,2,10],["a","A",33,2,11],["S3","A",34,2,12],["S3_to_S4","C",35,2,13],["b","A",36,2,14],["S4_behavior","R",37,3,0],["S4","A",40,3,13],["S4","A",45,3,20] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,25],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,37],[12,11],[14,13],[14,37],[15,14],[16,13],[19,13],[19,37],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,37],[36,35],[40,37],[45,37]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,40],[16,14],[19,8],[19,45],[21,19],[22,21],[24,22],[28,6],[29,28],[31,29],[32,31],[34,32],[35,34],[40,35],[45,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S3"] ,[4, "S3"] ,[5, "S4"] ,[6, "S2"] ,[7, "S1"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"a"],[4,5,"b"],[5,6,"a"],[6,7,"b"],[7,8,"b"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,15],["a","A",20,1,16],["S2","A",21,1,17],["S2_to_End","C",22,1,18],["empty","A",23,1,19],["End","A",24,1,20],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S4","C",29,2,14],["b","A",30,2,15],["S4_behavior","R",31,3,0],["S4","A",34,3,6],["S4","A",39,3,14] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,31],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,31],[15,14],[16,13],[19,13],[19,31],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,31],[30,29],[34,31],[39,31]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,34],[16,14],[19,8],[19,39],[21,19],[22,21],[24,22],[28,11],[29,28],[29,14],[34,6],[39,29]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S4"] ,[7, "S2"] ,[8, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,18],["a","A",20,1,19],["S2","A",21,1,20],["S2_to_End","C",22,1,21],["empty","A",23,1,22],["End","A",24,1,23],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S3","C",29,2,14],["a","A",30,2,15],["S3","A",31,2,16],["S3_to_S4","C",32,2,17],["b","A",33,2,18],["S4_behavior","R",34,3,0],["S4","A",37,3,6],["S4","A",42,3,17] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,34],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,34],[15,14],[16,13],[19,13],[19,34],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,34],[33,32],[37,34],[42,34]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,37],[16,14],[19,8],[19,42],[21,19],[22,21],[24,22],[28,11],[29,28],[31,29],[32,31],[32,14],[37,6],[42,32]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S3"] ,[7, "S4"] ,[8, "S2"] ,[9, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,21],["a","A",20,1,22],["S2","A",21,1,23],["S2_to_End","C",22,1,24],["empty","A",23,1,25],["End","A",24,1,26],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S3","C",29,2,14],["a","A",30,2,15],["S3","A",31,2,16],["S3_to_S3","C",32,2,17],["a","A",33,2,18],["S3","A",34,2,19],["S3_to_S4","C",35,2,20],["b","A",36,2,21],["S4_behavior","R",37,3,0],["S4","A",40,3,6],["S4","A",45,3,20] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,37],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,37],[15,14],[16,13],[19,13],[19,37],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,37],[36,35],[40,37],[45,37]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,40],[16,14],[19,8],[19,45],[21,19],[22,21],[24,22],[28,11],[29,28],[31,29],[32,31],[34,32],[35,34],[35,14],[40,6],[45,35]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S3"] ,[7, "S3"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"a"],[7,8,"b"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.00757576, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S4","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,14],["a","A",20,1,15],["S2","A",21,1,16],["S2_to_End","C",22,1,17],["empty","A",23,1,18],["End","A",24,1,19],["S3_behavior","R",25,2,0],["S4_behavior","R",26,3,0],["S4","A",29,3,6],["S4","A",34,3,13] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,26],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,26],[12,11],[14,13],[14,26],[15,14],[16,13],[19,13],[19,26],[20,19],[21,13],[22,13],[23,22],[24,13],[29,26],[34,26]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,29],[16,14],[19,8],[19,34],[21,19],[22,21],[24,22],[29,6],[34,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S4"] ,[6, "S2"] ,[7, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.00757576, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["a","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S4","C",11,0,12],["b","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,14],["a","A",20,1,15],["S2","A",21,1,16],["S2_to_End","C",22,1,17],["empty","A",23,1,18],["End","A",24,1,19],["S3_behavior","R",25,2,0],["S4_behavior","R",26,3,0],["S4","A",29,3,6],["S4","A",34,3,13] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,26],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,26],[12,11],[14,13],[14,26],[15,14],[16,13],[19,13],[19,26],[20,19],[21,13],[22,13],[23,22],[24,13],[29,26],[34,26]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,29],[16,14],[19,8],[19,34],[21,19],[22,21],[24,22],[29,6],[34,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S4"] ,[6, "S2"] ,[7, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[2,3,"a"],[3,4,"b"],[4,5,"b"],[5,6,"a"],[6,7,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,15],["a","A",20,1,16],["S2","A",21,1,17],["S2_to_End","C",22,1,18],["empty","A",23,1,19],["End","A",24,1,20],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S4","C",29,2,14],["b","A",30,2,15],["S4_behavior","R",31,3,0],["S4","A",34,3,6],["S4","A",39,3,14] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,31],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,31],[15,14],[16,13],[19,13],[19,31],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[29,31],[30,29],[34,31],[39,31]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,34],[16,14],[19,8],[19,39],[21,19],[22,21],[24,22],[28,11],[29,28],[29,14],[34,6],[39,29]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S4"] ,[7, "S2"] ,[8, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"b"],[6,7,"a"],[7,8,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,18],["a","A",20,1,19],["S2","A",21,1,20],["S2_to_End","C",22,1,21],["empty","A",23,1,22],["End","A",24,1,23],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S3","C",29,2,14],["a","A",30,2,15],["S3","A",31,2,16],["S3_to_S4","C",32,2,17],["b","A",33,2,18],["S4_behavior","R",34,3,0],["S4","A",37,3,6],["S4","A",42,3,17] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,34],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,34],[15,14],[16,13],[19,13],[19,34],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[32,34],[33,32],[37,34],[42,34]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,37],[16,14],[19,8],[19,42],[21,19],[22,21],[24,22],[28,11],[29,28],[31,29],[32,31],[32,14],[37,6],[42,32]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S3"] ,[7, "S4"] ,[8, "S2"] ,[9, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"b"],[7,8,"a"],[8,9,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.010101, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S3","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,21],["a","A",20,1,22],["S2","A",21,1,23],["S2_to_End","C",22,1,24],["empty","A",23,1,25],["End","A",24,1,26],["S3_behavior","R",25,2,0],["S3","A",28,2,13],["S3_to_S3","C",29,2,14],["a","A",30,2,15],["S3","A",31,2,16],["S3_to_S3","C",32,2,17],["a","A",33,2,18],["S3","A",34,2,19],["S3_to_S4","C",35,2,20],["b","A",36,2,21],["S4_behavior","R",37,3,0],["S4","A",40,3,6],["S4","A",45,3,20] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,37],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,25],[12,11],[14,13],[14,37],[15,14],[16,13],[19,13],[19,37],[20,19],[21,13],[22,13],[23,22],[24,13],[28,25],[29,25],[30,29],[31,25],[32,25],[33,32],[34,25],[35,25],[35,37],[36,35],[40,37],[45,37]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[14,40],[16,14],[19,8],[19,45],[21,19],[22,21],[24,22],[28,11],[29,28],[31,29],[32,31],[34,32],[35,34],[35,14],[40,6],[45,35]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S3"] ,[6, "S3"] ,[7, "S3"] ,[8, "S4"] ,[9, "S2"] ,[10, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"a"],[7,8,"b"],[8,9,"a"],[9,10,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.00757576, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S4","C",11,0,12],["a","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,14],["a","A",20,1,15],["S2","A",21,1,16],["S2_to_End","C",22,1,17],["empty","A",23,1,18],["End","A",24,1,19],["S3_behavior","R",25,2,0],["S4_behavior","R",26,3,0],["S4","A",29,3,6],["S4","A",34,3,13] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,26],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,26],[12,11],[14,13],[14,26],[15,14],[16,13],[19,13],[19,26],[20,19],[21,13],[22,13],[23,22],[24,13],[29,26],[34,26]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,29],[16,14],[19,8],[19,34],[21,19],[22,21],[24,22],[29,6],[34,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S4"] ,[6, "S2"] ,[7, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"b"],[4,5,"a"],[5,6,"a"],[6,7,"empty"]],
+ [] ]} ]}
+],
+
+["U", 0.00757576, 
+[ ["S1_behavior","R",1,0,0],["Start","A",2,0,1],["Start_to_S1","C",3,0,2],["empty","A",4,0,3],["S1","A",5,0,4],["S1_to_S4","C",6,0,5],["b","A",7,0,6],["S2_to_S1","C",8,0,9],["b","A",9,0,10],["S1","A",10,0,11],["S1_to_S4","C",11,0,12],["b","A",12,0,13],["S2_behavior","R",13,1,0],["S4_to_S2","C",14,1,7],["a","A",15,1,8],["S2","A",16,1,9],["S4_to_S2","C",19,1,14],["a","A",20,1,15],["S2","A",21,1,16],["S2_to_End","C",22,1,17],["empty","A",23,1,18],["End","A",24,1,19],["S3_behavior","R",25,2,0],["S4_behavior","R",26,3,0],["S4","A",29,3,6],["S4","A",34,3,13] ],
+
+[[2,1],[3,1],[4,3],[5,1],[6,1],[6,26],[7,6],[8,1],[8,13],[9,8],[10,1],[11,1],[11,26],[12,11],[14,13],[14,26],[15,14],[16,13],[19,13],[19,26],[20,19],[21,13],[22,13],[23,22],[24,13],[29,26],[34,26]],
+[[3,2],[5,3],[6,5],[8,6],[8,16],[10,8],[11,10],[11,14],[14,29],[16,14],[19,8],[19,34],[21,19],[22,21],[24,22],[29,6],[34,11]]
+,{"VIEWS":[ 
+{"GRAPH":["Path for the event trace",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S4"] ,[3, "S2"] ,[4, "S1"] ,[5, "S4"] ,[6, "S2"] ,[7, "End"] ],
+ [ [0,1,"empty"],[1,2,"b"],[2,3,"a"],[3,4,"b"],[4,5,"b"],[5,6,"a"],[6,7,"empty"]],
+ [] ]} ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["State transition diagram",
+ [ [0, "Start"] ,[1, "S1"] ,[2, "S3"] ,[3, "S4"] ,[4, "S2"] ,[5, "End"] ],
+ [ [0,1,"empty"],[1,2,"a"],[1,3,"a"],[1,3,"b"],[2,3,"b"],[2,2,"a"],[3,4,"a"],[4,5,"empty"],[4,1,"b"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example36_Statechart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example36_Statechart.json
new file mode 100644
index 0000000..cadae96
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example36_Statechart.json
@@ -0,0 +1,111 @@
+{"traces":[
+
+["U", 0.817891, 
+[ ["Customer","R",1,0,0],["ATM_system","R",2,1,0],["Idle","A",3,1,1],["Data_Base","R",4,2,0] ],
+
+[[3,2]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0255591, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["get_money","A",5,0,7],["retrieve_card","A",6,0,8],["ATM_system","R",7,1,0],["Idle","A",8,1,1],["read_card","A",9,1,2],["validate_id","A",10,1,3],["id_successful","A",11,1,4],["check_balance","A",12,1,5],["sufficient_balance","A",13,1,6],["dispense_money","A",14,1,7],["Idle","A",15,1,8],["Data_Base","R",16,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[10,16],[11,7],[12,7],[12,16],[13,7],[14,7],[15,7]],
+[[3,2],[3,11],[4,3],[5,4],[5,14],[6,5],[9,8],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13],[15,14]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0255591, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["not_sufficient_funds","A",5,0,6],["retrieve_card","A",6,0,7],["ATM_system","R",7,1,0],["Idle","A",8,1,1],["read_card","A",9,1,2],["validate_id","A",10,1,3],["id_successful","A",11,1,4],["check_balance","A",12,1,5],["unsufficient_balance","A",13,1,6],["Idle","A",14,1,7],["Data_Base","R",15,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[8,7],[9,7],[10,7],[10,15],[11,7],[12,7],[12,15],[13,7],[14,7]],
+[[3,2],[3,11],[4,3],[5,4],[5,13],[6,5],[9,8],[9,2],[10,9],[11,10],[12,11],[12,10],[12,4],[13,12],[14,13]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.102236, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,4],["retrieve_card","A",4,0,5],["ATM_system","R",5,1,0],["Idle","A",6,1,1],["read_card","A",7,1,2],["validate_id","A",8,1,3],["id_failed","A",9,1,4],["Idle","A",10,1,5],["Data_Base","R",11,2,0] ],
+
+[[2,1],[3,1],[4,1],[6,5],[7,5],[8,5],[8,11],[9,5],[10,5]],
+[[3,2],[3,9],[4,3],[7,6],[7,2],[8,7],[9,8],[10,9]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["get_money","A",5,0,7],["retrieve_card","A",6,0,8],["insert_card","A",7,0,9],["identification_succeeds","A",8,0,11],["request_withdrawal","A",9,0,12],["get_money","A",10,0,14],["retrieve_card","A",11,0,15],["ATM_system","R",12,1,0],["Idle","A",13,1,1],["read_card","A",14,1,2],["validate_id","A",15,1,3],["id_successful","A",16,1,4],["check_balance","A",17,1,5],["sufficient_balance","A",18,1,6],["dispense_money","A",19,1,7],["Idle","A",20,1,8],["read_card","A",21,1,9],["validate_id","A",22,1,10],["id_successful","A",23,1,11],["check_balance","A",24,1,12],["sufficient_balance","A",25,1,13],["dispense_money","A",26,1,14],["Idle","A",27,1,15],["Data_Base","R",28,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[13,12],[14,12],[15,12],[15,28],[16,12],[17,12],[17,28],[18,12],[19,12],[20,12],[21,12],[22,12],[22,28],[23,12],[24,12],[24,28],[25,12],[26,12],[27,12]],
+[[3,2],[3,16],[4,3],[5,4],[5,19],[6,5],[7,6],[8,7],[8,23],[9,8],[10,9],[10,26],[11,10],[14,13],[14,2],[15,14],[16,15],[17,16],[17,15],[17,4],[18,17],[19,18],[20,19],[21,20],[21,7],[22,21],[22,17],[23,22],[24,23],[24,22],[24,9],[25,24],[26,25],[27,26]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["get_money","A",5,0,7],["retrieve_card","A",6,0,8],["insert_card","A",7,0,9],["identification_succeeds","A",8,0,11],["request_withdrawal","A",9,0,12],["not_sufficient_funds","A",10,0,13],["retrieve_card","A",11,0,14],["ATM_system","R",12,1,0],["Idle","A",13,1,1],["read_card","A",14,1,2],["validate_id","A",15,1,3],["id_successful","A",16,1,4],["check_balance","A",17,1,5],["sufficient_balance","A",18,1,6],["dispense_money","A",19,1,7],["Idle","A",20,1,8],["read_card","A",21,1,9],["validate_id","A",22,1,10],["id_successful","A",23,1,11],["check_balance","A",24,1,12],["unsufficient_balance","A",25,1,13],["Idle","A",26,1,14],["Data_Base","R",27,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[13,12],[14,12],[15,12],[15,27],[16,12],[17,12],[17,27],[18,12],[19,12],[20,12],[21,12],[22,12],[22,27],[23,12],[24,12],[24,27],[25,12],[26,12]],
+[[3,2],[3,16],[4,3],[5,4],[5,19],[6,5],[7,6],[8,7],[8,23],[9,8],[10,9],[10,25],[11,10],[14,13],[14,2],[15,14],[16,15],[17,16],[17,15],[17,4],[18,17],[19,18],[20,19],[21,20],[21,7],[22,21],[22,17],[23,22],[24,23],[24,22],[24,9],[25,24],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["get_money","A",5,0,7],["retrieve_card","A",6,0,8],["insert_card","A",7,0,9],["identification_fails","A",8,0,11],["retrieve_card","A",9,0,12],["ATM_system","R",10,1,0],["Idle","A",11,1,1],["read_card","A",12,1,2],["validate_id","A",13,1,3],["id_successful","A",14,1,4],["check_balance","A",15,1,5],["sufficient_balance","A",16,1,6],["dispense_money","A",17,1,7],["Idle","A",18,1,8],["read_card","A",19,1,9],["validate_id","A",20,1,10],["id_failed","A",21,1,11],["Idle","A",22,1,12],["Data_Base","R",23,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[13,10],[13,23],[14,10],[15,10],[15,23],[16,10],[17,10],[18,10],[19,10],[20,10],[20,23],[21,10],[22,10]],
+[[3,2],[3,14],[4,3],[5,4],[5,17],[6,5],[7,6],[8,7],[8,21],[9,8],[12,11],[12,2],[13,12],[14,13],[15,14],[15,13],[15,4],[16,15],[17,16],[18,17],[19,18],[19,7],[20,19],[20,15],[21,20],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["not_sufficient_funds","A",5,0,6],["retrieve_card","A",6,0,7],["insert_card","A",7,0,8],["identification_succeeds","A",8,0,10],["request_withdrawal","A",9,0,11],["get_money","A",10,0,13],["retrieve_card","A",11,0,14],["ATM_system","R",12,1,0],["Idle","A",13,1,1],["read_card","A",14,1,2],["validate_id","A",15,1,3],["id_successful","A",16,1,4],["check_balance","A",17,1,5],["unsufficient_balance","A",18,1,6],["Idle","A",19,1,7],["read_card","A",20,1,8],["validate_id","A",21,1,9],["id_successful","A",22,1,10],["check_balance","A",23,1,11],["sufficient_balance","A",24,1,12],["dispense_money","A",25,1,13],["Idle","A",26,1,14],["Data_Base","R",27,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[13,12],[14,12],[15,12],[15,27],[16,12],[17,12],[17,27],[18,12],[19,12],[20,12],[21,12],[21,27],[22,12],[23,12],[23,27],[24,12],[25,12],[26,12]],
+[[3,2],[3,16],[4,3],[5,4],[5,18],[6,5],[7,6],[8,7],[8,22],[9,8],[10,9],[10,25],[11,10],[14,13],[14,2],[15,14],[16,15],[17,16],[17,15],[17,4],[18,17],[19,18],[20,19],[20,7],[21,20],[21,17],[22,21],[23,22],[23,21],[23,9],[24,23],[25,24],[26,25]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000798722, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["not_sufficient_funds","A",5,0,6],["retrieve_card","A",6,0,7],["insert_card","A",7,0,8],["identification_succeeds","A",8,0,10],["request_withdrawal","A",9,0,11],["not_sufficient_funds","A",10,0,12],["retrieve_card","A",11,0,13],["ATM_system","R",12,1,0],["Idle","A",13,1,1],["read_card","A",14,1,2],["validate_id","A",15,1,3],["id_successful","A",16,1,4],["check_balance","A",17,1,5],["unsufficient_balance","A",18,1,6],["Idle","A",19,1,7],["read_card","A",20,1,8],["validate_id","A",21,1,9],["id_successful","A",22,1,10],["check_balance","A",23,1,11],["unsufficient_balance","A",24,1,12],["Idle","A",25,1,13],["Data_Base","R",26,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[13,12],[14,12],[15,12],[15,26],[16,12],[17,12],[17,26],[18,12],[19,12],[20,12],[21,12],[21,26],[22,12],[23,12],[23,26],[24,12],[25,12]],
+[[3,2],[3,16],[4,3],[5,4],[5,18],[6,5],[7,6],[8,7],[8,22],[9,8],[10,9],[10,24],[11,10],[14,13],[14,2],[15,14],[16,15],[17,16],[17,15],[17,4],[18,17],[19,18],[20,19],[20,7],[21,20],[21,17],[22,21],[23,22],[23,21],[23,9],[24,23],[25,24]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_succeeds","A",3,0,4],["request_withdrawal","A",4,0,5],["not_sufficient_funds","A",5,0,6],["retrieve_card","A",6,0,7],["insert_card","A",7,0,8],["identification_fails","A",8,0,10],["retrieve_card","A",9,0,11],["ATM_system","R",10,1,0],["Idle","A",11,1,1],["read_card","A",12,1,2],["validate_id","A",13,1,3],["id_successful","A",14,1,4],["check_balance","A",15,1,5],["unsufficient_balance","A",16,1,6],["Idle","A",17,1,7],["read_card","A",18,1,8],["validate_id","A",19,1,9],["id_failed","A",20,1,10],["Idle","A",21,1,11],["Data_Base","R",22,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[13,10],[13,22],[14,10],[15,10],[15,22],[16,10],[17,10],[18,10],[19,10],[19,22],[20,10],[21,10]],
+[[3,2],[3,14],[4,3],[5,4],[5,16],[6,5],[7,6],[8,7],[8,20],[9,8],[12,11],[12,2],[13,12],[14,13],[15,14],[15,13],[15,4],[16,15],[17,16],[18,17],[18,7],[19,18],[19,15],[20,19],[21,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,4],["retrieve_card","A",4,0,5],["insert_card","A",5,0,6],["identification_succeeds","A",6,0,8],["request_withdrawal","A",7,0,9],["get_money","A",8,0,11],["retrieve_card","A",9,0,12],["ATM_system","R",10,1,0],["Idle","A",11,1,1],["read_card","A",12,1,2],["validate_id","A",13,1,3],["id_failed","A",14,1,4],["Idle","A",15,1,5],["read_card","A",16,1,6],["validate_id","A",17,1,7],["id_successful","A",18,1,8],["check_balance","A",19,1,9],["sufficient_balance","A",20,1,10],["dispense_money","A",21,1,11],["Idle","A",22,1,12],["Data_Base","R",23,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[13,10],[13,23],[14,10],[15,10],[16,10],[17,10],[17,23],[18,10],[19,10],[19,23],[20,10],[21,10],[22,10]],
+[[3,2],[3,14],[4,3],[5,4],[6,5],[6,18],[7,6],[8,7],[8,21],[9,8],[12,11],[12,2],[13,12],[14,13],[15,14],[16,15],[16,5],[17,16],[17,13],[18,17],[19,18],[19,17],[19,7],[20,19],[21,20],[22,21]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00319489, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,4],["retrieve_card","A",4,0,5],["insert_card","A",5,0,6],["identification_succeeds","A",6,0,8],["request_withdrawal","A",7,0,9],["not_sufficient_funds","A",8,0,10],["retrieve_card","A",9,0,11],["ATM_system","R",10,1,0],["Idle","A",11,1,1],["read_card","A",12,1,2],["validate_id","A",13,1,3],["id_failed","A",14,1,4],["Idle","A",15,1,5],["read_card","A",16,1,6],["validate_id","A",17,1,7],["id_successful","A",18,1,8],["check_balance","A",19,1,9],["unsufficient_balance","A",20,1,10],["Idle","A",21,1,11],["Data_Base","R",22,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[11,10],[12,10],[13,10],[13,22],[14,10],[15,10],[16,10],[17,10],[17,22],[18,10],[19,10],[19,22],[20,10],[21,10]],
+[[3,2],[3,14],[4,3],[5,4],[6,5],[6,18],[7,6],[8,7],[8,20],[9,8],[12,11],[12,2],[13,12],[14,13],[15,14],[16,15],[16,5],[17,16],[17,13],[18,17],[19,18],[19,17],[19,7],[20,19],[21,20]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0127796, 
+[ ["Customer","R",1,0,0],["insert_card","A",2,0,1],["identification_fails","A",3,0,4],["retrieve_card","A",4,0,5],["insert_card","A",5,0,6],["identification_fails","A",6,0,8],["retrieve_card","A",7,0,9],["ATM_system","R",8,1,0],["Idle","A",9,1,1],["read_card","A",10,1,2],["validate_id","A",11,1,3],["id_failed","A",12,1,4],["Idle","A",13,1,5],["read_card","A",14,1,6],["validate_id","A",15,1,7],["id_failed","A",16,1,8],["Idle","A",17,1,9],["Data_Base","R",18,2,0] ],
+
+[[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[9,8],[10,8],[11,8],[11,18],[12,8],[13,8],[14,8],[15,8],[15,18],[16,8],[17,8]],
+[[3,2],[3,12],[4,3],[5,4],[6,5],[6,16],[7,6],[10,9],[10,2],[11,10],[12,11],[13,12],[14,13],[14,5],[15,14],[15,11],[16,15],[17,16]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"GRAPH":["ATM state transition diagram",
+ [ [0, "Idle"] ,[1, "id_successful"] ,[2, "sufficient_balance"] ,[3, "unsufficient_balance"] ,[4, "id_failed"] ],
+ [ [0,1,"insert_card"],[0,4,"insert_card"],[1,2,"request_withdrawal"],[1,3,"request_withdrawal"],[2,0,"retrieve_card"],[3,0,"retrieve_card"],[4,0,"retrieve_card"]],
+ [] ]}]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example37_GLOBAL_query.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example37_GLOBAL_query.json
new file mode 100644
index 0000000..4148cba
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example37_GLOBAL_query.json
@@ -0,0 +1,53 @@
+{"traces":[
+
+["M", 0.4, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.1, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["Receiver","R",3,1,0],["does_not_receive","A",4,1,1] ],
+
+[[2,1],[4,3]],
+[[4,2]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.32, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.08, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.08, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.02, 
+[ ["Sender","R",1,0,0],["send","A",2,0,1],["send","A",3,0,2],["Receiver","R",4,1,0],["does_not_receive","A",5,1,1],["does_not_receive","A",6,1,2] ],
+
+[[2,1],[3,1],[5,4],[6,4]],
+[[3,2],[5,2],[6,5],[6,3]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Scope 2","Total 6 traces","In 2 of traces at least 75% of sent messages have been received","At the given scope probability for at least 75% messages to pass through is 0.72"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example38_knapsack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example38_knapsack.json
new file mode 100644
index 0000000..7af69c8
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example38_knapsack.json
@@ -0,0 +1,37 @@
+{"traces":[
+
+["U", 0.25, 
+[ ["Best result so far: 0","T",4,0,0],["A","R",1,1,0],["B","R",2,2,0],["C","R",3,3,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 5","T",5,0,0],["A","R",1,1,0],["B","R",2,2,0],["C","R",3,3,0],["Item_C","A",4,3,1] ],
+
+[[4,3]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 10","T",6,0,0],["A","R",1,1,0],["B","R",2,2,0],["C","R",3,3,0],["Item_C","A",4,3,1],["Item_C","A",5,3,2] ],
+
+[[4,3],[5,3]],
+[[5,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.25, 
+[ ["Best result so far: 11","T",7,0,0],["A","R",1,1,0],["B","R",2,2,0],["Item_B","A",3,2,1],["Item_B","A",4,2,2],["C","R",5,3,0],["Item_C","A",6,3,1] ],
+
+[[3,2],[4,2],[6,5]],
+[[4,3]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",{"SAY":[]},
+{"REPORT":["Best knapsack","Weight limit 11","Single item's weight: A= 2 B= 3 C= 5","For scope 2 best packing is 11","Pack 0 of A, 2 of B, 1 of C"]}
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example39_turtles.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example39_turtles.json
new file mode 100644
index 0000000..0149492
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example39_turtles.json
@@ -0,0 +1,107 @@
+{"traces":[
+
+["U", 0.0769231, 
+[ ["moving parallel","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["1 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Telling_the_truth","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["1 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["nobody_before","A",3,1,2],["Telling_the_truth","A",5,1,3],["two_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Telling_the_truth","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork downward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["two_before","A",13,5,2],["Lying","A",15,5,3],["nobody_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["one_before","A",3,1,2],["Lying","A",5,1,3],["one_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["two_before","A",8,3,2],["Lying","A",10,3,3],["nobody_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form fork upward","T",16,0,0],["3 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["nobody_before","A",8,3,2],["Lying","A",10,3,3],["two_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["one_before","A",13,5,2],["Telling_the_truth","A",15,5,3],["one_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0769231, 
+[ ["form vertical line","T",16,0,0],["2 are lying","T",17,0,1],["Turtle_1","R",1,1,0],["neighbors","C",2,1,1],["two_before","A",3,1,2],["Lying","A",5,1,3],["nobody_behinds","A",4,2,2],["Turtle_2","R",6,3,0],["neighbors","C",7,3,1],["one_before","A",8,3,2],["Telling_the_truth","A",10,3,3],["one_behinds","A",9,4,2],["Turtle_3","R",11,5,0],["neighbors","C",12,5,1],["nobody_before","A",13,5,2],["Lying","A",15,5,3],["two_behinds","A",14,6,2] ],
+
+[[2,1],[3,2],[4,2],[5,1],[7,6],[8,7],[9,7],[10,6],[12,11],[13,12],[14,12],[15,11]],
+[[5,2],[10,7],[15,12]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example40_web_browsers.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example40_web_browsers.json
new file mode 100644
index 0000000..c5c021f
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example40_web_browsers.json
@@ -0,0 +1,73 @@
+{"traces":[
+
+["U", 0.958265, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,2],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Send_Response","A",6,1,2],["Bad_Server","R",7,2,0] ],
+
+[[2,1],[3,1],[5,4],[6,5]],
+[[3,2],[3,6],[5,2]],
+["causes", [2,5],[6,3]],
+["is_response_to", [5,2]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00591521, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,2],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Send_Response","A",6,1,2],["Response","C",7,1,3],["Send_Response","A",8,1,4],["Bad_Server","R",9,2,0],["Request","A",10,2,1],["Process_Response","A",11,2,4] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,4],[8,7],[10,9],[11,9]],
+[[3,2],[3,6],[5,2],[7,5],[7,10],[11,10],[11,8]],
+["causes", [2,5],[6,3],[8,11],[10,7]],
+["is_response_to", [5,2],[7,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.0177456, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,3],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Request","A",6,1,2],["Send_Response","A",7,1,3],["Process_Response","A",8,1,4],["Bad_Server","R",9,2,0],["Response","C",10,2,2],["Redirect","A",11,2,3],["Send_Response","A",12,2,4] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,5],[8,4],[10,9],[11,10],[12,10]],
+[[3,2],[3,7],[5,2],[7,6],[8,5],[8,12],[10,6],[12,11]],
+["causes", [2,5],[5,6],[6,10],[7,3],[12,8]],
+["is_response_to", [5,2],[10,6]]
+,{"VIEWS":[ ]}
+],
+
+["M", 0.00591521, 
+[ ["Response to Client may be affected by Bad Server","T",13,0,0],["Client","R",1,1,0],["Request","A",2,1,1],["Process_Response","A",3,1,5],["Good_Server","R",4,2,0],["Request","A",5,2,1],["Process_Response","A",6,2,3],["Response","C",7,2,4],["Send_Response","A",8,2,5],["Bad_Server","R",9,3,0],["Response","C",10,3,1],["Redirect","A",11,3,2],["Send_Response","A",12,3,3] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,4],[8,7],[10,9],[11,10],[12,10]],
+[[3,2],[3,8],[6,5],[6,12],[7,6],[7,2],[10,5],[12,11]],
+["causes", [2,7],[5,10],[8,3],[12,6]],
+["is_response_to", [7,2],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00591521, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,3],["Good_Server","R",4,1,0],["Request","A",5,1,1],["Response","C",6,1,2],["Send_Response","A",7,1,3],["Process_Response","A",8,1,4],["Bad_Server","R",9,2,0],["Response","C",10,2,1],["Redirect","A",11,2,2],["Send_Response","A",12,2,3] ],
+
+[[2,1],[3,1],[5,4],[6,4],[7,6],[8,4],[10,9],[11,10],[12,10]],
+[[3,2],[3,7],[6,5],[6,2],[8,6],[8,12],[10,5],[12,11]],
+["causes", [2,6],[5,10],[7,3],[12,8]],
+["is_response_to", [6,2],[10,5]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.00591521, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,2],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Send_Response","A",6,1,2],["Request","A",7,1,3],["Process_Response","A",8,1,5],["Bad_Server","R",9,2,0],["Response","C",10,2,3],["Redirect","A",11,2,4],["Send_Response","A",12,2,5] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,4],[8,4],[10,9],[11,10],[12,10]],
+[[3,2],[3,6],[5,2],[7,5],[8,7],[8,12],[10,7],[12,11]],
+["causes", [2,5],[6,3],[7,10],[12,8]],
+["is_response_to", [5,2],[10,7]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.000328623, 
+[ ["Client","R",1,0,0],["Request","A",2,0,1],["Process_Response","A",3,0,3],["Good_Server","R",4,1,0],["Response","C",5,1,1],["Request","A",6,1,2],["Send_Response","A",8,1,3],["Process_Response","A",9,1,6],["Process_Response","A",10,1,9],["Request","A",7,2,2],["Bad_Server","R",11,3,0],["Response","C",12,3,3],["Redirect","A",13,3,4],["Send_Response","A",14,3,5],["Response","C",15,3,6],["Redirect","A",16,3,7],["Send_Response","A",17,3,8] ],
+
+[[2,1],[3,1],[5,4],[6,5],[7,5],[8,5],[9,4],[10,4],[12,11],[13,12],[14,12],[15,11],[16,15],[17,15]],
+[[3,2],[3,8],[5,2],[8,6],[8,7],[9,5],[9,14],[10,9],[10,17],[12,6],[14,13],[15,12],[15,7],[17,16]],
+["causes", [2,5],[5,6],[5,7],[6,12],[7,15],[8,3],[14,9],[17,10]],
+["is_response_to", [5,2],[12,6],[15,7]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example41_Replay_Attack.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example41_Replay_Attack.json
new file mode 100644
index 0000000..e5cf279
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example41_Replay_Attack.json
@@ -0,0 +1,51 @@
+{"traces":[
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["Network","R",3,1,0],["message_in_transit","A",4,1,2],["Eve","R",5,2,0],["eavesesdrops_message","A",6,2,2],["presents_Alice_password","A",7,2,4],["talks","A",8,2,5],["Bob","R",9,3,0],["requests_password_from_Alice","A",10,3,1],["receives_password_from_Alice","A",11,3,3],["asks_for_password","A",12,3,4] ],
+
+[[2,1],[4,3],[6,5],[7,5],[8,5],[8,9],[10,9],[11,9],[12,9]],
+[[2,10],[4,2],[6,4],[7,6],[7,12],[8,7],[8,12],[11,10],[11,4],[12,11]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["Network","R",3,1,0],["message_in_transit","A",4,1,2],["Eve","R",5,2,0],["eavesesdrops_message","A",6,2,2],["presents_Alice_password","A",7,2,4],["talks","A",8,2,5],["presents_Alice_password","A",9,2,6],["talks","A",10,2,7],["Bob","R",11,3,0],["requests_password_from_Alice","A",12,3,1],["receives_password_from_Alice","A",13,3,3],["asks_for_password","A",14,3,4],["asks_for_password","A",16,3,5] ],
+
+[[2,1],[4,3],[6,5],[7,5],[8,5],[8,11],[9,5],[10,5],[10,11],[12,11],[13,11],[14,11],[16,11]],
+[[2,12],[4,2],[6,4],[7,6],[7,14],[8,7],[8,14],[9,8],[9,16],[10,9],[10,16],[13,12],[13,4],[14,13],[16,8]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["presents_Alice_password","A",3,0,5],["talks","A",4,0,6],["Network","R",5,1,0],["message_in_transit","A",6,1,2],["Eve","R",7,2,0],["eavesesdrops_message","A",8,2,2],["presents_Alice_password","A",9,2,7],["talks","A",10,2,8],["Bob","R",11,3,0],["requests_password_from_Alice","A",12,3,1],["receives_password_from_Alice","A",13,3,3],["asks_for_password","A",14,3,4],["asks_for_password","A",16,3,7] ],
+
+[[2,1],[3,1],[4,1],[4,11],[6,5],[8,7],[9,7],[10,7],[10,11],[12,11],[13,11],[14,11],[16,11]],
+[[2,12],[3,2],[3,14],[4,3],[4,14],[6,2],[8,6],[9,8],[9,16],[10,9],[10,16],[13,12],[13,6],[14,13],[16,4]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["presents_Alice_password","A",3,0,5],["talks","A",4,0,6],["Network","R",5,1,0],["message_in_transit","A",6,1,2],["Eve","R",7,2,0],["eavesesdrops_message","A",8,2,2],["presents_Alice_password","A",9,2,7],["talks","A",10,2,8],["presents_Alice_password","A",11,2,9],["talks","A",12,2,10],["Bob","R",13,3,0],["requests_password_from_Alice","A",14,3,1],["receives_password_from_Alice","A",15,3,3],["asks_for_password","A",16,3,4],["asks_for_password","A",18,3,7],["asks_for_password","A",20,3,8] ],
+
+[[2,1],[3,1],[4,1],[4,13],[6,5],[8,7],[9,7],[10,7],[10,13],[11,7],[12,7],[12,13],[14,13],[15,13],[16,13],[18,13],[20,13]],
+[[2,14],[3,2],[3,16],[4,3],[4,16],[6,2],[8,6],[9,8],[9,18],[10,9],[10,18],[11,10],[11,20],[12,11],[12,20],[15,14],[15,6],[16,15],[18,4],[20,10]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["presents_Alice_password","A",3,0,5],["talks","A",4,0,6],["presents_Alice_password","A",5,0,8],["talks","A",6,0,9],["Network","R",7,1,0],["message_in_transit","A",8,1,2],["Eve","R",9,2,0],["eavesesdrops_message","A",10,2,2],["presents_Alice_password","A",11,2,10],["talks","A",12,2,11],["Bob","R",13,3,0],["requests_password_from_Alice","A",14,3,1],["receives_password_from_Alice","A",15,3,3],["asks_for_password","A",16,3,4],["asks_for_password","A",18,3,7],["asks_for_password","A",20,3,10] ],
+
+[[2,1],[3,1],[4,1],[4,13],[5,1],[6,1],[6,13],[8,7],[10,9],[11,9],[12,9],[12,13],[14,13],[15,13],[16,13],[18,13],[20,13]],
+[[2,14],[3,2],[3,16],[4,3],[4,16],[5,4],[5,18],[6,5],[6,18],[8,2],[10,8],[11,10],[11,20],[12,11],[12,20],[15,14],[15,8],[16,15],[18,4],[20,6]]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["Alice","R",1,0,0],["sends_password_to_Bob","A",2,0,2],["presents_Alice_password","A",3,0,5],["talks","A",4,0,6],["presents_Alice_password","A",5,0,8],["talks","A",6,0,9],["Network","R",7,1,0],["message_in_transit","A",8,1,2],["Eve","R",9,2,0],["eavesesdrops_message","A",10,2,2],["presents_Alice_password","A",11,2,10],["talks","A",12,2,11],["presents_Alice_password","A",13,2,12],["talks","A",14,2,13],["Bob","R",15,3,0],["requests_password_from_Alice","A",16,3,1],["receives_password_from_Alice","A",17,3,3],["asks_for_password","A",18,3,4],["asks_for_password","A",20,3,7],["asks_for_password","A",22,3,10],["asks_for_password","A",24,3,11] ],
+
+[[2,1],[3,1],[4,1],[4,15],[5,1],[6,1],[6,15],[8,7],[10,9],[11,9],[12,9],[12,15],[13,9],[14,9],[14,15],[16,15],[17,15],[18,15],[20,15],[22,15],[24,15]],
+[[2,16],[3,2],[3,18],[4,3],[4,18],[5,4],[5,20],[6,5],[6,20],[8,2],[10,8],[11,10],[11,22],[12,11],[12,22],[13,12],[13,24],[14,13],[14,24],[17,16],[17,8],[18,17],[20,4],[22,6],[24,12]]
+,{"VIEWS":[ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example42_Bar_Chart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example42_Bar_Chart.json
new file mode 100644
index 0000000..63cc0f5
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example42_Bar_Chart.json
@@ -0,0 +1,19 @@
+{"traces":[
+
+["U", 1, 
+[ ["A","R",1,0,0],["a","A",2,0,1],["b","A",3,0,2],["c","A",4,0,3],["a","A",5,0,4] ],
+
+[[2,1],[3,1],[4,1],[5,1]],
+[[3,2],[4,3],[5,4]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Trace 1", 
+"tabs": [ "event_name","total_number"],
+ "rows": [ [ "A",1],[ "a",2],[ "b",1],[ "c",1]] } }
+,
+{"BAR_CHART": { "title": "Trace 1 chart", 
+"tabs": [ "event_name","total_number"], "X_AXIS": "event_name","ROTATE": 0, 
+  "rows": [ [ "A",1],[ "a",2],[ "b",1],[ "c",1]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example43_Histogram.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example43_Histogram.json
new file mode 100644
index 0000000..8be71aa
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example43_Histogram.json
@@ -0,0 +1,47 @@
+{"traces":[
+
+["U", 0.2, 
+[ ["A","R",1,0,0],["a1","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.3, 
+[ ["A","R",1,0,0],["a2","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["A","R",1,0,0] ],
+
+[],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["A","R",1,0,0],["a3","A",2,0,1] ],
+
+[[2,1]],
+[]
+,{"VIEWS":[ ]}
+],
+
+["U", 0.166667, 
+[ ["A","R",1,0,0],["a3","A",2,0,1],["a3","A",3,0,2] ],
+
+[[2,1],[3,1]],
+[[3,2]]
+,{"VIEWS":[ ]}
+]
+]
+,"GLOBAL":["U",
+{"BAR_CHART": { "title": "Trace probabilities", 
+"tabs": [ "probability_interval","trace_count"], "X_AXIS": "probability_interval","ROTATE": 0, 
+  "rows": [ [ "[0..0.1)",0],[ "[0.1..0.2)",3],[ "[0.2..0.3)",1],[ "[0.3..0.4)",1],[ "[0.4..0.5)",0],[ "[0.5..0.6)",0],[ "[0.6..0.7)",0],[ "[0.7..0.8)",0],[ "[0.8..0.9)",0],[ "[0.9..1)",0]] } }
+]}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example44_Gantt_Chart.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example44_Gantt_Chart.json
new file mode 100644
index 0000000..f5bf362
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example44_Gantt_Chart.json
@@ -0,0 +1,15 @@
+{"traces":[
+
+["U", 1, 
+[ ["A","R",1,0,0],["a1","A",2,0,1],["a2","A",3,0,2],["B","R",4,1,0],["b1","A",5,1,1],["b2","A",7,1,2] ],
+
+[[2,1],[3,1],[3,4],[5,4],[7,4]],
+[[3,2],[3,5],[7,3]]
+,{"VIEWS":[ 
+{"BAR_CHART": { "title": "Example of Gantt Chart", 
+"tabs": [ "event_name","start_time","duration_time"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "A",0,8],[ "a1",0,3],[ "a2",3,5],[ "B",0,10],[ "b1",0,1],[ "b2",8,2]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example45_Martian_Lander.json b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example45_Martian_Lander.json
new file mode 100644
index 0000000..0e2beb4
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/mp_trace_generator_test_output_2/Example45_Martian_Lander.json
@@ -0,0 +1,275 @@
+{"traces":[
+
+["U", 0.125, 
+[ ["Running Timer1","T",22,0,0],["Landing complete at 30","T",23,0,1],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,6],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["IOINT","A",15,3,4],["Lands","A",16,3,5],["stop_Timer2","A",18,3,6],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",19,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,19],[13,8],[14,8],[15,8],[16,8],[18,8],[18,19]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,16],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,15],[18,16],[18,12]],
+["alert", [22,1],[23,16]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",50,0,50],[ "ADJM",10,20,30],[ "Lands",30,0,30]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",50,0],[ "ADJM",10,20],[ "Lands",30,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",25,0,0],["Emergency landing started at 101","T",26,0,1],["Landing complete at 111","T",27,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,8],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["TMRINT","A",15,3,4],["IEM","A",16,3,5],["Emergency_Landing","C",17,3,6],["Lands","A",18,3,7],["stop_Timer2","A",20,3,8],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",21,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,21],[13,8],[14,8],[15,8],[15,21],[16,8],[17,8],[18,8],[20,8],[20,21]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,18],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[15,12],[16,15],[17,16],[18,17],[20,18],[20,15]],
+["alert", [25,1],[26,15],[27,18]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",111,0,111],[ "ADJM",10,20,30],[ "Emergency_Landing",111,0,111],[ "Lands",111,0,111]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",111,0],[ "ADJM",10,20],[ "Emergency_Landing",111,0],[ "Lands",111,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",26,0,0],["Emergency landing started at 101","T",27,0,1],["Landing complete at 121","T",28,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,9],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["TMRINT","A",15,3,4],["IEM","A",16,3,5],["Emergency_Landing","C",17,3,6],["fire_RRM","A",18,3,7],["Lands","A",19,3,8],["stop_Timer2","A",21,3,9],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",22,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,22],[13,8],[14,8],[15,8],[15,22],[16,8],[17,8],[18,17],[19,8],[21,8],[21,22]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,19],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[15,12],[16,15],[17,16],[19,17],[21,19],[21,15]],
+["alert", [26,1],[27,15],[28,19]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",121,0,121],[ "ADJM",10,20,30],[ "Emergency_Landing",111,10,121],[ "fire_RRM",111,10,121],[ "Lands",121,0,121]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",121,0],[ "ADJM",10,20],[ "Emergency_Landing",111,10],[ "fire_RRM",111,10],[ "Lands",121,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",27,0,0],["Emergency landing started at 101","T",28,0,1],["Landing complete at 131","T",29,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,10],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["TMRINT","A",15,3,4],["IEM","A",16,3,5],["Emergency_Landing","C",17,3,6],["fire_RRM","A",18,3,7],["fire_RRM","A",19,3,8],["Lands","A",20,3,9],["stop_Timer2","A",22,3,10],["STMR2","A",12,4,1],["ETC","A",14,4,3],["Timer2","R",23,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,23],[13,8],[14,8],[15,8],[15,23],[16,8],[17,8],[18,17],[19,17],[20,8],[22,8],[22,23]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,20],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[15,12],[16,15],[17,16],[19,18],[20,17],[22,20],[22,15]],
+["alert", [27,1],[28,15],[29,20]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",131,0,131],[ "ADJM",10,20,30],[ "Emergency_Landing",111,20,131],[ "fire_RRM",111,10,121],[ "fire_RRM",121,10,131],[ "Lands",131,0,131]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",131,0],[ "ADJM",10,20],[ "Emergency_Landing",111,20],[ "fire_RRM",111,10],[ "fire_RRM",121,10],[ "Lands",131,0]] } }
+ ]}
+],
+
+["U", 0.125, 
+[ ["Running Timer1","T",24,0,0],["Landing complete at 50","T",25,0,1],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,7],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["ADJM","A",15,3,4],["IOINT","A",17,3,5],["Lands","A",18,3,6],["stop_Timer2","A",20,3,7],["STMR2","A",12,4,1],["ETC","A",14,4,3],["ETC","A",16,4,4],["Timer2","R",21,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,21],[13,8],[14,8],[15,8],[16,8],[17,8],[18,8],[20,8],[20,21]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,18],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,13],[16,14],[17,15],[17,16],[18,17],[20,18],[20,12]],
+["alert", [24,1],[25,18]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",50,0,50],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Lands",50,0,50]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",50,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Lands",50,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",27,0,0],["Emergency landing started at 101","T",28,0,1],["Landing complete at 111","T",29,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,9],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["ADJM","A",15,3,4],["TMRINT","A",17,3,5],["IEM","A",18,3,6],["Emergency_Landing","C",19,3,7],["Lands","A",20,3,8],["stop_Timer2","A",22,3,9],["STMR2","A",12,4,1],["ETC","A",14,4,3],["ETC","A",16,4,4],["Timer2","R",23,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,23],[13,8],[14,8],[15,8],[16,8],[17,8],[17,23],[18,8],[19,8],[20,8],[22,8],[22,23]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,20],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,13],[16,14],[17,15],[17,16],[17,12],[18,17],[19,18],[20,19],[22,20],[22,17]],
+["alert", [27,1],[28,17],[29,20]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",111,0,111],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,0,111],[ "Lands",111,0,111]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",111,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,0],[ "Lands",111,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",28,0,0],["Emergency landing started at 101","T",29,0,1],["Landing complete at 121","T",30,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,10],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["ADJM","A",15,3,4],["TMRINT","A",17,3,5],["IEM","A",18,3,6],["Emergency_Landing","C",19,3,7],["fire_RRM","A",20,3,8],["Lands","A",21,3,9],["stop_Timer2","A",23,3,10],["STMR2","A",12,4,1],["ETC","A",14,4,3],["ETC","A",16,4,4],["Timer2","R",24,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,24],[13,8],[14,8],[15,8],[16,8],[17,8],[17,24],[18,8],[19,8],[20,19],[21,8],[23,8],[23,24]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,21],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,13],[16,14],[17,15],[17,16],[17,12],[18,17],[19,18],[21,19],[23,21],[23,17]],
+["alert", [28,1],[29,17],[30,21]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",121,0,121],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,10,121],[ "fire_RRM",111,10,121],[ "Lands",121,0,121]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",121,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,10],[ "fire_RRM",111,10],[ "Lands",121,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",29,0,0],["Emergency landing started at 101","T",30,0,1],["Landing complete at 131","T",31,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["stop_Timer1","A",7,1,11],["IALT","A",4,2,2],["Landing","R",8,3,0],["START","A",9,3,1],["RACC","A",10,3,2],["ADJM","A",13,3,3],["ADJM","A",15,3,4],["TMRINT","A",17,3,5],["IEM","A",18,3,6],["Emergency_Landing","C",19,3,7],["fire_RRM","A",20,3,8],["fire_RRM","A",21,3,9],["Lands","A",22,3,10],["stop_Timer2","A",24,3,11],["STMR2","A",12,4,1],["ETC","A",14,4,3],["ETC","A",16,4,4],["Timer2","R",25,5,0] ],
+
+[[2,1],[2,8],[3,1],[4,1],[5,1],[6,1],[7,1],[7,8],[9,8],[10,8],[12,8],[12,25],[13,8],[14,8],[15,8],[16,8],[17,8],[17,25],[18,8],[19,8],[20,19],[21,19],[22,8],[24,8],[24,25]],
+[[2,9],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[7,22],[10,9],[12,9],[13,10],[13,12],[13,2],[14,10],[14,12],[14,2],[15,13],[15,14],[16,13],[16,14],[17,15],[17,16],[17,12],[18,17],[19,18],[21,20],[22,19],[24,22],[24,17]],
+["alert", [29,1],[30,17],[31,22]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "stop_Timer1",131,0,131],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,20,131],[ "fire_RRM",111,10,121],[ "fire_RRM",121,10,131],[ "Lands",131,0,131]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "stop_Timer1",131,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,20],[ "fire_RRM",111,10],[ "fire_RRM",121,10],[ "Lands",131,0]] } }
+ ]}
+],
+
+["U", 0.125, 
+[ ["Running Timer1","T",26,0,0],["Landing complete at 30","T",27,0,1],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,9],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["IOINT","A",19,3,4],["Lands","A",20,3,5],["stop_Timer2","A",22,3,6],["STMR2","A",16,4,1],["ETC","A",18,4,3],["Timer2","R",23,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,23],[17,12],[18,12],[19,12],[20,12],[22,12],[22,23]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,20],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[20,19],[22,20],[22,16]],
+["alert", [26,1],[27,20]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",90,0,90],[ "ADJM",10,20,30],[ "Lands",30,0,30]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",90,0],[ "ADJM",10,20],[ "Lands",30,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",29,0,0],["Emergency landing started at 101","T",30,0,1],["Landing complete at 111","T",31,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,9],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["TMRINT","A",19,3,4],["IEM","A",20,3,5],["Emergency_Landing","C",21,3,6],["Lands","A",22,3,7],["stop_Timer2","A",24,3,8],["STMR2","A",16,4,1],["ETC","A",18,4,3],["Timer2","R",25,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,25],[17,12],[18,12],[19,12],[19,25],[20,12],[21,12],[22,12],[24,12],[24,25]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,22],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[19,16],[20,19],[21,20],[22,21],[24,22],[24,19]],
+["alert", [29,1],[30,19],[31,22]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",111,0,111],[ "ADJM",10,20,30],[ "Emergency_Landing",111,0,111],[ "Lands",111,0,111]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",111,0],[ "ADJM",10,20],[ "Emergency_Landing",111,0],[ "Lands",111,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",30,0,0],["Emergency landing started at 101","T",31,0,1],["Landing complete at 121","T",32,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,9],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["TMRINT","A",19,3,4],["IEM","A",20,3,5],["Emergency_Landing","C",21,3,6],["fire_RRM","A",22,3,7],["Lands","A",23,3,8],["stop_Timer2","A",25,3,9],["STMR2","A",16,4,1],["ETC","A",18,4,3],["Timer2","R",26,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,26],[17,12],[18,12],[19,12],[19,26],[20,12],[21,12],[22,21],[23,12],[25,12],[25,26]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,23],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[19,16],[20,19],[21,20],[23,21],[25,23],[25,19]],
+["alert", [30,1],[31,19],[32,23]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",121,0,121],[ "ADJM",10,20,30],[ "Emergency_Landing",111,10,121],[ "fire_RRM",111,10,121],[ "Lands",121,0,121]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",121,0],[ "ADJM",10,20],[ "Emergency_Landing",111,10],[ "fire_RRM",111,10],[ "Lands",121,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",31,0,0],["Emergency landing started at 101","T",32,0,1],["Landing complete at 131","T",33,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,10],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["TMRINT","A",19,3,4],["IEM","A",20,3,5],["Emergency_Landing","C",21,3,6],["fire_RRM","A",22,3,7],["fire_RRM","A",23,3,8],["Lands","A",24,3,9],["stop_Timer2","A",26,3,10],["STMR2","A",16,4,1],["ETC","A",18,4,3],["Timer2","R",27,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,27],[17,12],[18,12],[19,12],[19,27],[20,12],[21,12],[22,21],[23,21],[24,12],[26,12],[26,27]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,24],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[19,16],[20,19],[21,20],[23,22],[24,21],[26,24],[26,19]],
+["alert", [31,1],[32,19],[33,24]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",131,0,131],[ "ADJM",10,20,30],[ "Emergency_Landing",111,20,131],[ "fire_RRM",111,10,121],[ "fire_RRM",121,10,131],[ "Lands",131,0,131]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",131,0],[ "ADJM",10,20],[ "Emergency_Landing",111,20],[ "fire_RRM",111,10],[ "fire_RRM",121,10],[ "Lands",131,0]] } }
+ ]}
+],
+
+["U", 0.125, 
+[ ["Running Timer1","T",28,0,0],["Landing complete at 50","T",29,0,1],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,9],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["ADJM","A",19,3,4],["IOINT","A",21,3,5],["Lands","A",22,3,6],["stop_Timer2","A",24,3,7],["STMR2","A",16,4,1],["ETC","A",18,4,3],["ETC","A",20,4,4],["Timer2","R",25,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,25],[17,12],[18,12],[19,12],[20,12],[21,12],[22,12],[24,12],[24,25]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,22],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[20,17],[20,18],[21,19],[21,20],[22,21],[24,22],[24,16]],
+["alert", [28,1],[29,22]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",90,0,90],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Lands",50,0,50]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",90,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Lands",50,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",31,0,0],["Emergency landing started at 101","T",32,0,1],["Landing complete at 111","T",33,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,9],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["ADJM","A",19,3,4],["TMRINT","A",21,3,5],["IEM","A",22,3,6],["Emergency_Landing","C",23,3,7],["Lands","A",24,3,8],["stop_Timer2","A",26,3,9],["STMR2","A",16,4,1],["ETC","A",18,4,3],["ETC","A",20,4,4],["Timer2","R",27,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,27],[17,12],[18,12],[19,12],[20,12],[21,12],[21,27],[22,12],[23,12],[24,12],[26,12],[26,27]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,24],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[20,17],[20,18],[21,19],[21,20],[21,16],[22,21],[23,22],[24,23],[26,24],[26,21]],
+["alert", [31,1],[32,21],[33,24]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",111,0,111],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,0,111],[ "Lands",111,0,111]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",111,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,0],[ "Lands",111,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",32,0,0],["Emergency landing started at 101","T",33,0,1],["Landing complete at 121","T",34,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,10],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["ADJM","A",19,3,4],["TMRINT","A",21,3,5],["IEM","A",22,3,6],["Emergency_Landing","C",23,3,7],["fire_RRM","A",24,3,8],["Lands","A",25,3,9],["stop_Timer2","A",27,3,10],["STMR2","A",16,4,1],["ETC","A",18,4,3],["ETC","A",20,4,4],["Timer2","R",28,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,28],[17,12],[18,12],[19,12],[20,12],[21,12],[21,28],[22,12],[23,12],[24,23],[25,12],[27,12],[27,28]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,25],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[20,17],[20,18],[21,19],[21,20],[21,16],[22,21],[23,22],[25,23],[27,25],[27,21]],
+["alert", [32,1],[33,21],[34,25]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",121,0,121],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,10,121],[ "fire_RRM",111,10,121],[ "Lands",121,0,121]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",121,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,10],[ "fire_RRM",111,10],[ "Lands",121,0]] } }
+ ]}
+],
+
+["U", 0.0416667, 
+[ ["Running Timer1","T",33,0,0],["Emergency landing started at 101","T",34,0,1],["Landing complete at 131","T",35,0,2],["Measure_and_display","R",1,1,0],["STMR1","A",2,1,2],["IVEL","A",3,1,3],["CKDT","A",5,1,4],["TDP","A",6,1,5],["IVEL","A",7,1,6],["CKDT","A",9,1,7],["TDP","A",10,1,8],["stop_Timer1","A",11,1,11],["IALT","A",4,2,2],["IALT","A",8,2,5],["Landing","R",12,3,0],["START","A",13,3,1],["RACC","A",14,3,2],["ADJM","A",17,3,3],["ADJM","A",19,3,4],["TMRINT","A",21,3,5],["IEM","A",22,3,6],["Emergency_Landing","C",23,3,7],["fire_RRM","A",24,3,8],["fire_RRM","A",25,3,9],["Lands","A",26,3,10],["stop_Timer2","A",28,3,11],["STMR2","A",16,4,1],["ETC","A",18,4,3],["ETC","A",20,4,4],["Timer2","R",29,5,0] ],
+
+[[2,1],[2,12],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[11,1],[11,12],[13,12],[14,12],[16,12],[16,29],[17,12],[18,12],[19,12],[20,12],[21,12],[21,29],[22,12],[23,12],[24,23],[25,23],[26,12],[28,12],[28,29]],
+[[2,13],[3,2],[4,2],[5,3],[5,4],[6,5],[7,6],[8,6],[9,7],[9,8],[10,9],[11,10],[11,26],[14,13],[16,13],[17,14],[17,16],[17,2],[18,14],[18,16],[18,2],[19,17],[19,18],[20,17],[20,18],[21,19],[21,20],[21,16],[22,21],[23,22],[25,24],[26,23],[28,26],[28,21]],
+["alert", [33,1],[34,21],[35,26]]
+,{"VIEWS":[ 
+{"TABLE": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration","end_time"],
+ "rows": [ [ "IVEL",10,20,30],[ "IALT",10,20,30],[ "TDP",40,10,50],[ "IVEL",50,20,70],[ "IALT",50,20,70],[ "TDP",80,10,90],[ "stop_Timer1",131,0,131],[ "ADJM",10,20,30],[ "ADJM",30,20,50],[ "Emergency_Landing",111,20,131],[ "fire_RRM",111,10,121],[ "fire_RRM",121,10,131],[ "Lands",131,0,131]] } }
+,
+{"BAR_CHART": { "title": "Event timings", 
+"tabs": [ "event_name","start_time","event_duration"], "X_AXIS": "event_name","ROTATE": 1, 
+  "rows": [ [ "IVEL",10,20],[ "IALT",10,20],[ "TDP",40,10],[ "IVEL",50,20],[ "IALT",50,20],[ "TDP",80,10],[ "stop_Timer1",131,0],[ "ADJM",10,20],[ "ADJM",30,20],[ "Emergency_Landing",111,20],[ "fire_RRM",111,10],[ "fire_RRM",121,10],[ "Lands",131,0]] } }
+ ]}
+]
+]
+}
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/test_mp_given_rc_changes.sh b/RIGAL/rigsc.446/TEST_MP_PRELOADS/test_mp_given_rc_changes.sh
new file mode 100755
index 0000000..8c21397
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/test_mp_given_rc_changes.sh
@@ -0,0 +1,13 @@
+#/bin/bash
+set -e # stop if any command fails
+rm -f ./welcome.output_1 ./welcome.output_2
+./welcome.sh test ../bin ../../../Code/ ../../../Firebird_Pre_loaded_examples/ 1 >> welcome.output_1 2>&1
+./welcome.sh test ../bin ../../../Code/ ../../../Firebird_Pre_loaded_examples/ 2 >> welcome.output_2 2>&1
+tail -2 welcome.output_1
+tail -2 welcome.output_2
+
+# we don't try scope three as some files take a very long time to finish.
+# if you just want to check without computing
+# diff -rq dir1 dir2
+
+
diff --git a/RIGAL/rigsc.446/TEST_MP_PRELOADS/welcome.sh b/RIGAL/rigsc.446/TEST_MP_PRELOADS/welcome.sh
new file mode 100755
index 0000000..6c1b87d
--- /dev/null
+++ b/RIGAL/rigsc.446/TEST_MP_PRELOADS/welcome.sh
@@ -0,0 +1,196 @@
+#!/bin/bash
+set -e # stop whenever any command fails. 
+
+usage_function ()
+{
+  echo "Just called as : $1 $2 $3 $4 $5";
+  echo
+  echo "Usage: $0" 
+  echo "first  argument: [test or run]" 
+  echo "second argument: [path_to_rigal_c_compiler]"
+  echo "third  argument: [path_to_mp_code]" 
+  echo "fourth argument: [mp_filepath or mp_filename]" 
+  echo "fifth  argument: [scope] ";
+  exit 0
+}
+
+
+compile_and_generate_mp_traces ()
+{
+  echo $rc
+  echo $ic
+  cp $mp_code_path/*.rig mp_trace_generator_run_build/.
+  cp $mp_code_path/*.h   mp_trace_generator_run_build/.
+ 
+# Copy the mp file into the build folder
+  echo $a_file
+  cp $a_file mp_trace_generator_run_build/.
+
+  echo ${a_file##*/} #just the file name with extension included
+  local mp_filename_with_extension=${a_file##*/}
+  echo ${a_file%.*}  #path to file with filename extension not included
+  local mp_base_filename=${mp_filename_with_extension%.*}
+  echo $mp_base_filename
+# Switch to build folder and run build scripts
+  cd mp_trace_generator_run_build
+# 1. Compile parser
+../$rc MP2-parser
+echo "Compiled MP2-Parser"
+# 2. Run parser to create tree
+../$ic MP2-parser $mp_base_filename tree $mp_scope > temp.txt
+local tr="tree"
+local new_tree_name="${mp_base_filename}"."${tr}"
+echo "new tree name = $new_tree_name"
+cp tree $new_tree_name
+local new_temp_name="${mp_base_filename}".temp.txt
+echo "new temp name = $new_temp_name"
+cp temp.txt $new_temp_name
+echo "ran Parser on $a_file"
+# 3. Compile generator
+../$rc MP2-generator
+echo "Compiled MP2-generator"
+# 4. Run generator to create C++ code
+../$ic MP2-generator tree > temp2.txt
+local new_temp2_name="${mp_base_filename}".temp2.txt
+echo "new temp2 name = $new_temp2_name"
+cp temp2.txt $new_temp2_name
+echo "Generated CPP code"
+rm tree *.rsc
+echo "C++ compiler: g++ $mp_base_filename.cpp -o $mp_base_filename -fast"
+#time /Developer/usr/bin/g++ "$mp_basename.cpp" -o $mp_basename -fast
+# 5. Compile the C++ code
+time g++ "${mp_base_filename}.cpp" -o $mp_base_filename -Ofast
+echo "$mp_base_filename run: $mp_base_filename>$mp_base_filename.txt"
+# 6. Run the compiled C++ program 
+time ./$mp_base_filename>"${mp_base_filename}.txt"
+echo "Completed $mp_base_filename for scope $mp_scope"
+mv $mp_base_filename.json ../mp_trace_generator_run_output_"$mp_scope"/
+rm $mp_base_filename xd RIGCOMP.TMP 
+cd ..
+
+}
+
+# Show the help text
+if [[ "$1" == "-h" ]] || [[ -z "$*" ]] ; then
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+
+
+if [[ "$1" != "test" ]] && [[ "$1" != "run" ]]; then
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+
+shell_mode=$1   # run to get json or test to compare to known-good files
+rc_path=$2      # path to trace-generator bin directory
+mp_code_path=$3 # path to .rig and .h code of MP
+mp=$4           # might be a path or a filename -- distinguished later.
+mp_scope=$5     # can run at any scope, 1,2,3,4,or 5
+
+#check rc_path is valid 
+if test ! -d $rc_path ; then
+  echo "$rc_path does not exist!"
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+echo "rc_path confirmed: $rc_path "
+#check mp_code_path is valid 
+if test ! -d $mp_code_path ; then
+  echo "$mp_code_path does not exist!"
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+echo "mp_code_path confirmed: $mp_code_path"
+
+#check for the executable rc
+if test ! -x $rc_path/rc ; then
+  echo "The executable compiler $rc_path/rc does not exist!"
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+rc=$rc_path/rc
+if test ! -x $rc_path/ic ; then
+  echo "The executable compiler $rc_path/ic does not exist!"
+  usage_function $0 $1 $2 $3 $4 $5
+fi
+ic=$rc_path/ic
+
+echo "rc executable set: $rc"
+
+#check whether mp is path or file
+if [ ! -e $mp ]; then
+  echo " $mp is not a file or directory "
+  usage_function $0 $1 $2 $3 $4 $5
+else
+  if [ -d $mp ]; then
+     mp_path=$mp
+     mp_type="path"
+     echo "FILE PATH provided" 
+  elif [ -f $mp ]; then
+     mp_filename=$mp
+     mp_type="filename"
+  else
+    echo " $mp is not a file or directory "
+  usage_function $0 $1 $2 $3 $4 $5
+  fi
+fi
+echo "mp type is set to $mp_type"
+
+#check mp_scope is a number greater than 0 default to 1 if not present. 
+if [ ! "$mp_scope" = "1" ] &&
+   [ ! "$mp_scope" = "2" ] &&
+   [ ! "$mp_scope" = "3" ] &&
+   [ ! "$mp_scope" = "4" ] &&
+   [ ! "$mp_scope" = "5" ] ; then
+   echo " $mp_scope should one of these numbers: {1,2,3,4,5} "
+  usage_function $0 $1 $2 $3 $4 $5
+fi;
+echo "mp scope is set"
+
+# Setup the /build folder
+if [ ! -d "mp_trace_generator_run_build" ]; then
+  mkdir mp_trace_generator_run_build  
+fi 
+if [ ! -d "mp_trace_generator_run_output_$mp_scope" ]; then
+ mkdir mp_trace_generator_run_output_"$mp_scope"
+fi 
+echo "setting mp path/filename"
+echo "mp_type = $mp_type"
+if [ "$mp_type" = "path" ]; then
+    file_list=$(/usr/bin/find "$mp_path" -type f -maxdepth 2 -name "*.mp");
+    echo $file_list
+    for a_file in $file_list 
+    do 
+        echo "The file to process is:****** ***** :  $a_file"
+        file_info=$(file "$a_file")
+        echo "File information is: $file_info"
+                     #compute the output 
+        compile_and_generate_mp_traces $a_file
+    done
+    if   [ $shell_mode = "test" ]; then
+             #compare all computations to known good
+             diff_results=$(diff -rq mp_trace_generator_run_output_"$mp_scope"  mp_trace_generator_test_output_"$mp_scope")
+             if [[ -z "$diff_results" ]] ; then
+                echo "No differences between computed and known good were found!"
+             else
+                echo "Differences found are: "
+                echo $diff_results
+             fi
+                
+    elif [ $shell_mode = "run"  ]; then
+            echo "IN RUN MODE"
+            echo "Computed results from file: $a_file"
+    else usage_function $0 $1 $2 $3 $4 $5
+    fi
+    
+else
+   if [ "$mp_type" = "filename" ]; then
+    file_list=$mp_filename
+    a_file=$file_list
+    file_info=$(file $file_list)
+    echo "File information is: $file_info"
+    echo "MODE is:  $shell_mode"
+    compile_and_generate_mp_traces
+   else
+     usage_function $0 $1 $2 $3 $4 $5
+   fi
+fi
+
+
+
-- 
GitLab