1#ifndef BACKENDS_P4TOOLS_MODULES_SMITH_COMMON_PROBABILITIES_H_ 
    2#define BACKENDS_P4TOOLS_MODULES_SMITH_COMMON_PROBABILITIES_H_ 
    6static struct Probabilities {
 
    8    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN = 75;
 
    9    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_CALL = 25;
 
   11    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN_BIT = 100;
 
   12    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_ASSIGN_STRUCTLIKE = 0;
 
   14    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_ACTION = 44;
 
   15    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_FUNCTION = 45;
 
   16    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_TABLE = 10;
 
   17    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_CTRL = 5;
 
   18    uint16_t ASSIGNMENTORMETHODCALLSTATEMENT_METHOD_BUILT_IN = 1;
 
   21    uint16_t STATEMENT_SWITCH = 5;
 
   22    uint16_t STATEMENT_ASSIGNMENTORMETHODCALL = 85;
 
   23    uint16_t STATEMENT_IF = 3;
 
   24    uint16_t STATEMENT_RETURN = 2;
 
   25    uint16_t STATEMENT_EXIT = 0;
 
   26    uint16_t STATEMENT_BLOCK = 2;
 
   28    uint16_t STATEMENT_FOR = 1;
 
   29    uint16_t STATEMENT_FOR_IN = 1;
 
   32    uint16_t SCOPE_LVAL_PATH = 90;
 
   33    uint16_t SCOPE_LVAL_SLICE = 10;
 
   36    uint16_t STATEMENTORDECLARATION_VAR = 10;
 
   37    uint16_t STATEMENTORDECLARATION_CONSTANT = 10;
 
   38    uint16_t STATEMENTORDECLARATION_STATEMENT = 80;
 
   41    uint16_t EXPRESSION_BIT_UNARY_NEG = 20;
 
   42    uint16_t EXPRESSION_BIT_UNARY_CMPL = 20;
 
   43    uint16_t EXPRESSION_BIT_UNARY_CAST = 10;
 
   44    uint16_t EXPRESSION_BIT_UNARY_FUNCTION = 50;
 
   46    uint16_t EXPRESSION_BIT_BINARY_MUL = 5;
 
   47    uint16_t EXPRESSION_BIT_BINARY_DIV = 5;
 
   48    uint16_t EXPRESSION_BIT_BINARY_MOD = 5;
 
   49    uint16_t EXPRESSION_BIT_BINARY_ADD = 10;
 
   50    uint16_t EXPRESSION_BIT_BINARY_SUB = 10;
 
   51    uint16_t EXPRESSION_BIT_BINARY_ADDSAT = 10;
 
   52    uint16_t EXPRESSION_BIT_BINARY_SUBSAT = 10;
 
   53    uint16_t EXPRESSION_BIT_BINARY_LSHIFT = 5;
 
   54    uint16_t EXPRESSION_BIT_BINARY_RSHIFT = 5;
 
   55    uint16_t EXPRESSION_BIT_BINARY_BAND = 10;
 
   56    uint16_t EXPRESSION_BIT_BINARY_BOR = 10;
 
   57    uint16_t EXPRESSION_BIT_BINARY_BXOR = 10;
 
   58    uint16_t EXPRESSION_BIT_BINARY_CONCAT = 5;
 
   60    uint16_t EXPRESSION_BIT_BINARY_SLICE = 50;
 
   61    uint16_t EXPRESSION_BIT_BINARY_MUX = 50;
 
   63    uint16_t EXPRESSION_BIT_VAR = 20;
 
   64    uint16_t EXPRESSION_BIT_INT_LITERAL = 5;
 
   65    uint16_t EXPRESSION_BIT_BIT_LITERAL = 25;
 
   66    uint16_t EXPRESSION_BIT_UNARY = 10;
 
   67    uint16_t EXPRESSION_BIT_BINARY = 20;
 
   68    uint16_t EXPRESSION_BIT_TERNARY = 10;
 
   71    uint16_t EXPRESSION_INT_UNARY_NEG = 20;
 
   72    uint16_t EXPRESSION_INT_UNARY_CMPL = 20;
 
   73    uint16_t EXPRESSION_INT_UNARY_FUNCTION = 50;
 
   75    uint16_t EXPRESSION_INT_BINARY_MUL = 5;
 
   76    uint16_t EXPRESSION_INT_BINARY_DIV = 5;
 
   77    uint16_t EXPRESSION_INT_BINARY_MOD = 5;
 
   78    uint16_t EXPRESSION_INT_BINARY_ADD = 10;
 
   79    uint16_t EXPRESSION_INT_BINARY_SUB = 10;
 
   80    uint16_t EXPRESSION_INT_BINARY_LSHIFT = 0;
 
   81    uint16_t EXPRESSION_INT_BINARY_RSHIFT = 0;
 
   82    uint16_t EXPRESSION_INT_BINARY_BAND = 10;
 
   83    uint16_t EXPRESSION_INT_BINARY_BOR = 10;
 
   84    uint16_t EXPRESSION_INT_BINARY_BXOR = 10;
 
   86    uint16_t EXPRESSION_INT_BINARY_MUX = 50;
 
   88    uint16_t EXPRESSION_INT_VAR = 20;
 
   89    uint16_t EXPRESSION_INT_INT_LITERAL = 5;
 
   90    uint16_t EXPRESSION_INT_UNARY = 10;
 
   91    uint16_t EXPRESSION_INT_BINARY = 20;
 
   94    uint16_t EXPRESSION_BOOLEAN_VAR = 15;
 
   95    uint16_t EXPRESSION_BOOLEAN_LITERAL = 20;
 
   96    uint16_t EXPRESSION_BOOLEAN_NOT = 35;
 
   97    uint16_t EXPRESSION_BOOLEAN_LAND = 5;
 
   98    uint16_t EXPRESSION_BOOLEAN_LOR = 5;
 
   99    uint16_t EXPRESSION_BOOLEAN_CMP = 10;
 
  100    uint16_t EXPRESSION_BOOLEAN_FUNCTION = 5;
 
  101    uint16_t EXPRESSION_BOOLEAN_BUILT_IN = 5;
 
  103    uint16_t EXPRESSION_BOOLEAN_CMP_EQU = 50;
 
  104    uint16_t EXPRESSION_BOOLEAN_CMP_NEQ = 50;
 
  107    uint16_t EXPRESSION_STRUCT_VAR = 50;
 
  108    uint16_t EXPRESSION_STRUCT_LITERAL = 30;
 
  109    uint16_t EXPRESSION_STRUCT_FUNCTION = 20;
 
  112    uint16_t P4STATE_TRANSITION_ACCEPT = 50;
 
  113    uint16_t P4STATE_TRANSITION_REJECT = 10;
 
  114    uint16_t P4STATE_TRANSITION_STATE = 30;
 
  115    uint16_t P4STATE_TRANSITION_SELECT = 10;
 
  117    uint16_t BASETYPE_BIT = 50;
 
  118    uint16_t BASETYPE_SIGNED_BIT = 0;
 
  119    uint16_t BASETYPE_VARBIT = 0;
 
  120    uint16_t BASETYPE_INT = 10;
 
  121    uint16_t BASETYPE_ERROR = 0;
 
  122    uint16_t BASETYPE_BOOL = 10;
 
  123    uint16_t BASETYPE_STRING = 0;
 
  124    uint16_t DERIVED_ENUM = 0;
 
  125    uint16_t DERIVED_HEADER = 5;
 
  126    uint16_t DERIVED_HEADER_STACK = 2;
 
  127    uint16_t DERIVED_STRUCT = 5;
 
  128    uint16_t DERIVED_HEADER_UNION = 0;
 
  129    uint16_t DERIVED_TUPLE = 0;
 
  130    uint16_t TYPE_VOID = 0;
 
  131    uint16_t TYPE_MATCH_KIND = 0;
 
  134    uint16_t CONSTANTDECLARATION_TYPE_BASE = 80;
 
  135    uint16_t CONSTANTDECLARATION_TYPE_STRUCT = 0;
 
  137    uint16_t CONSTANTDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  138    uint16_t CONSTANTDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  139    uint16_t CONSTANTDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  140    uint16_t CONSTANTDECLARATION_BASETYPE_INT = BASETYPE_INT;
 
  141    uint16_t CONSTANTDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  142    uint16_t CONSTANTDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
 
  143    uint16_t CONSTANTDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  144    uint16_t CONSTANTDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  145    uint16_t CONSTANTDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
 
  146    uint16_t CONSTANTDECLARATION_DERIVED_HEADER_STACK = 0;
 
  147    uint16_t CONSTANTDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
 
  148    uint16_t CONSTANTDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  149    uint16_t CONSTANTDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
 
  150    uint16_t CONSTANTDECLARATION_TYPE_VOID = TYPE_VOID;
 
  151    uint16_t CONSTANTDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  154    uint16_t FUNCTIONDECLARATION_TYPE_BASE = 90;
 
  155    uint16_t FUNCTIONDECLARATION_TYPE_STRUCT = 9;
 
  157    uint16_t FUNCTIONDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  158    uint16_t FUNCTIONDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  159    uint16_t FUNCTIONDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  160    uint16_t FUNCTIONDECLARATION_BASETYPE_INT = 0;
 
  161    uint16_t FUNCTIONDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  162    uint16_t FUNCTIONDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
 
  163    uint16_t FUNCTIONDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  164    uint16_t FUNCTIONDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  165    uint16_t FUNCTIONDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
 
  167    uint16_t FUNCTIONDECLARATION_DERIVED_HEADER_STACK = 0;
 
  168    uint16_t FUNCTIONDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
 
  169    uint16_t FUNCTIONDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  170    uint16_t FUNCTIONDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
 
  171    uint16_t FUNCTIONDECLARATION_TYPE_VOID = 1;
 
  172    uint16_t FUNCTIONDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  175    uint16_t HEADERTYPEDECLARATION_FIELD_BASE = 100;
 
  176    uint16_t HEADERTYPEDECLARATION_FIELD_STRUCT = 0;
 
  178    uint16_t HEADERTYPEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  179    uint16_t HEADERTYPEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  180    uint16_t HEADERTYPEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  181    uint16_t HEADERTYPEDECLARATION_BASETYPE_INT = 0;
 
  182    uint16_t HEADERTYPEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  183    uint16_t HEADERTYPEDECLARATION_BASETYPE_BOOL = 0;
 
  184    uint16_t HEADERTYPEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  185    uint16_t HEADERTYPEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  186    uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER = 0;
 
  187    uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER_STACK = 0;
 
  189    uint16_t HEADERTYPEDECLARATION_DERIVED_STRUCT = 0;
 
  190    uint16_t HEADERTYPEDECLARATION_DERIVED_HEADER_UNION = 0;
 
  191    uint16_t HEADERTYPEDECLARATION_DERIVED_TUPLE = 0;
 
  192    uint16_t HEADERTYPEDECLARATION_TYPE_VOID = 0;
 
  193    uint16_t HEADERTYPEDECLARATION_TYPE_MATCH_KIND = 0;
 
  196    uint16_t PARAMETER_DIR_IN = 33;
 
  197    uint16_t PARAMETER_DIR_OUT = 33;
 
  198    uint16_t PARAMETER_DIR_INOUT = 33;
 
  200    uint16_t PARAMETER_BASETYPE_BIT = BASETYPE_BIT;
 
  201    uint16_t PARAMETER_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  202    uint16_t PARAMETER_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  203    uint16_t PARAMETER_BASETYPE_INT = 0;
 
  204    uint16_t PARAMETER_BASETYPE_ERROR = BASETYPE_ERROR;
 
  205    uint16_t PARAMETER_BASETYPE_BOOL = 0;
 
  206    uint16_t PARAMETER_BASETYPE_STRING = BASETYPE_STRING;
 
  207    uint16_t PARAMETER_DERIVED_ENUM = DERIVED_ENUM;
 
  208    uint16_t PARAMETER_DERIVED_HEADER = DERIVED_HEADER;
 
  209    uint16_t PARAMETER_DERIVED_HEADER_STACK = 0;
 
  210    uint16_t PARAMETER_DERIVED_STRUCT = DERIVED_STRUCT;
 
  211    uint16_t PARAMETER_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  212    uint16_t PARAMETER_DERIVED_TUPLE = DERIVED_TUPLE;
 
  213    uint16_t PARAMETER_TYPE_VOID = TYPE_VOID;
 
  214    uint16_t PARAMETER_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  217    uint16_t PARAMETER_NONEDIR_BASETYPE_BIT = PARAMETER_BASETYPE_BIT;
 
  218    uint16_t PARAMETER_NONEDIR_BASETYPE_SIGNED_BIT = PARAMETER_BASETYPE_SIGNED_BIT;
 
  219    uint16_t PARAMETER_NONEDIR_BASETYPE_VARBIT = PARAMETER_BASETYPE_VARBIT;
 
  220    uint16_t PARAMETER_NONEDIR_BASETYPE_INT = PARAMETER_BASETYPE_INT;
 
  221    uint16_t PARAMETER_NONEDIR_BASETYPE_ERROR = PARAMETER_BASETYPE_ERROR;
 
  222    uint16_t PARAMETER_NONEDIR_BASETYPE_BOOL = PARAMETER_BASETYPE_BOOL;
 
  223    uint16_t PARAMETER_NONEDIR_BASETYPE_STRING = PARAMETER_BASETYPE_STRING;
 
  224    uint16_t PARAMETER_NONEDIR_DERIVED_ENUM = PARAMETER_DERIVED_ENUM;
 
  225    uint16_t PARAMETER_NONEDIR_DERIVED_HEADER = PARAMETER_DERIVED_HEADER;
 
  226    uint16_t PARAMETER_NONEDIR_DERIVED_HEADER_STACK = PARAMETER_DERIVED_HEADER_STACK;
 
  227    uint16_t PARAMETER_NONEDIR_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  228    uint16_t PARAMETER_NONEDIR_DERIVED_STRUCT = DERIVED_STRUCT;
 
  229    uint16_t PARAMETER_NONEDIR_DERIVED_TUPLE = DERIVED_TUPLE;
 
  230    uint16_t PARAMETER_NONEDIR_TYPE_VOID = TYPE_VOID;
 
  231    uint16_t PARAMETER_NONEDIR_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  234    uint16_t STRUCTTYPEDECLARATION_FIELD_BASE = 75;
 
  235    uint16_t STRUCTTYPEDECLARATION_FIELD_STRUCT = 25;
 
  236    uint16_t STRUCTTYPEDECLARATION_FIELD_STACK = 0;
 
  238    uint16_t STRUCTTYPEDECLARATION_HEADERS_HEADER = 90;
 
  239    uint16_t STRUCTTYPEDECLARATION_HEADERS_STACK = 10;
 
  241    uint16_t STRUCTTYPEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  242    uint16_t STRUCTTYPEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  243    uint16_t STRUCTTYPEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  244    uint16_t STRUCTTYPEDECLARATION_BASETYPE_INT = 0;
 
  245    uint16_t STRUCTTYPEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  246    uint16_t STRUCTTYPEDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
 
  247    uint16_t STRUCTTYPEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  248    uint16_t STRUCTTYPEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  249    uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
 
  250    uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
 
  251    uint16_t STRUCTTYPEDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
 
  252    uint16_t STRUCTTYPEDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  253    uint16_t STRUCTTYPEDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
 
  254    uint16_t STRUCTTYPEDECLARATION_TYPE_VOID = 0;
 
  255    uint16_t STRUCTTYPEDECLARATION_TYPE_MATCH_KIND = 0;
 
  257    uint16_t TYPEDECLARATION_HEADER = 75;
 
  258    uint16_t TYPEDECLARATION_STRUCT = 25;
 
  259    uint16_t TYPEDECLARATION_UNION = 0;
 
  262    uint16_t TYPEDEFDECLARATION_BASE = 75;
 
  263    uint16_t TYPEDEFDECLARATION_STRUCTLIKE = 25;
 
  264    uint16_t TYPEDEFDECLARATION_STACK = 0;
 
  266    uint16_t TYPEDEFDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  267    uint16_t TYPEDEFDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  268    uint16_t TYPEDEFDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  269    uint16_t TYPEDEFDECLARATION_BASETYPE_INT = 0;
 
  270    uint16_t TYPEDEFDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  271    uint16_t TYPEDEFDECLARATION_BASETYPE_BOOL = 0;
 
  272    uint16_t TYPEDEFDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  273    uint16_t TYPEDEFDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  274    uint16_t TYPEDEFDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
 
  275    uint16_t TYPEDEFDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
 
  276    uint16_t TYPEDEFDECLARATION_STRUCT = DERIVED_STRUCT;
 
  277    uint16_t TYPEDEFDECLARATION_HEADER_UNION = DERIVED_HEADER_UNION;
 
  278    uint16_t TYPEDEFDECLARATION_TUPLE = DERIVED_TUPLE;
 
  279    uint16_t TYPEDEFDECLARATION_TYPE_VOID = TYPE_VOID;
 
  280    uint16_t TYPEDEFDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  283    uint16_t VARIABLEDECLARATION_TYPE_BASE = 80;
 
  284    uint16_t VARIABLEDECLARATION_TYPE_STRUCT = 15;
 
  285    uint16_t VARIABLEDECLARATION_TYPE_STACK = 5;
 
  287    uint16_t VARIABLEDECLARATION_BASETYPE_BIT = BASETYPE_BIT;
 
  288    uint16_t VARIABLEDECLARATION_BASETYPE_SIGNED_BIT = BASETYPE_SIGNED_BIT;
 
  289    uint16_t VARIABLEDECLARATION_BASETYPE_VARBIT = BASETYPE_VARBIT;
 
  290    uint16_t VARIABLEDECLARATION_BASETYPE_INT = 0;
 
  291    uint16_t VARIABLEDECLARATION_BASETYPE_ERROR = BASETYPE_ERROR;
 
  292    uint16_t VARIABLEDECLARATION_BASETYPE_BOOL = BASETYPE_BOOL;
 
  293    uint16_t VARIABLEDECLARATION_BASETYPE_STRING = BASETYPE_STRING;
 
  294    uint16_t VARIABLEDECLARATION_DERIVED_ENUM = DERIVED_ENUM;
 
  295    uint16_t VARIABLEDECLARATION_DERIVED_HEADER = DERIVED_HEADER;
 
  296    uint16_t VARIABLEDECLARATION_DERIVED_HEADER_STACK = DERIVED_HEADER_STACK;
 
  297    uint16_t VARIABLEDECLARATION_DERIVED_STRUCT = DERIVED_STRUCT;
 
  298    uint16_t VARIABLEDECLARATION_DERIVED_HEADER_UNION = DERIVED_HEADER_UNION;
 
  299    uint16_t VARIABLEDECLARATION_DERIVED_TUPLE = DERIVED_TUPLE;
 
  300    uint16_t VARIABLEDECLARATION_TYPE_VOID = TYPE_VOID;
 
  301    uint16_t VARIABLEDECLARATION_TYPE_MATCH_KIND = TYPE_MATCH_KIND;
 
  304static struct Declarations {
 
  306    uint16_t MIN_TYPE = 1;
 
  307    uint16_t MAX_TYPE = 8;
 
  310    uint16_t BLOCKSTATEMENT_MIN_STAT = 3;
 
  311    uint16_t BLOCKSTATEMENT_MAX_STAT = 10;
 
  314    uint16_t MIN_CALLABLES = 0;
 
  315    uint16_t MAX_CALLABLES = 4;
 
  318    uint16_t MIN_VAR = 0;
 
  319    uint16_t MAX_VAR = 5;
 
  321    uint16_t MIN_INSTANCE = 0;
 
  322    uint16_t MAX_INSTANCE = 2;
 
  324    uint16_t MIN_ACTION = 0;
 
  325    uint16_t MAX_ACTION = 2;
 
  327    uint16_t MIN_TABLE = 0;
 
  328    uint16_t MAX_TABLE = 3;