libLIST=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libLIST.m"]<>"\n";
libNAMES=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libNAMES.m"]<>"\n";
libIO=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libIO.m"]<>"\n";
libERR=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libERR.m"]<>"\n";
libGUI=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libGUI.m"]<>"\n";
libML=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libML.m"]<>"\n";
libMISC=ReadString["C:/mathematica/Work/lossofgenerality/TRSM/TRSM Practice/libMISC.m"]<>"\n";

data="\n"<>"textfghjkl:="<>ToString[{

(* top question*)

{"Column[{fghjkl"<>".ToString[\"A row of inflated balloons sit in a row along a wall, \"<>IntegerName[ToExpression[#a]] <>\" are red, \"<>IntegerName[ToExpression[#b]]<>\" are yellow and \"<>IntegerName[ToExpression[#c]]<>\" are blue. A person is blind-folded and throws a dart at the balloons. \"]"<>","<>"ToString[\"\",TraditionalForm]}]"},

(*a*)
(* pay attention to the formating below for IntegerName *)
{"Column[{ToString[\"FGHJKLabc) If only \"<>IntegerName[ToExpression[#d]]<>\" ball is hit, determine the probability that the dart hits a yellow ball. \",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"},


(*b*)
{"Column[{ToString[\"FGHJKLabc) If \"<>IntegerName[ToExpression[#e]]<>\" balls are pierced consecutively, determine the probability that both balloons pierced are red. \",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"},

(*c*)
{"Column[{ToString[\"FGHJKLabc) If \"<>IntegerName[ToExpression[#e]]<>\" balls are pierced by darts, determine the probability that the pierced balloons are of different colours and the second ballon is yellow. \",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"}

},InputForm]<>";\n ";

variation1=data<>ToString[Hold[Module[{a,b,c,d,e,f,g,h,i,j,aa,bb,cc,dd,ee, ff, gg, hh, ii, jj,kk, vars,text,list,sol,solnew, parta, partb, partc, partd,question,b2,t1},


question=qRandList[textfghjkl[[1]]];

text=qRandList[textfghjkl[[2]]];

(*{a,b,c}= ToString/@{RandomInteger[{3,7}], RandomInteger[{3,7}],RandomInteger[{3,7}]};*)
{a,b,c}= ToString/@nIntegers[Range[3,10],3];

d=ToString@1;
e=ToString@2;
vars={a,b,c,d,e};

question=StringReplace[question, {"#a"->a,"#b"->b, "#c"->c, "#d"->d, "#e"->e}];
t1=ToString[ToExpression[a]+ToExpression[b]+ToExpression[c],TraditionalForm];

sol=ToString[{ToString[SetPrecision[((ToExpression[b])/(ToExpression[t1])),7],TraditionalForm],ToString[((ToExpression[b])/(ToExpression[t1])),TraditionalForm]},TraditionalForm];
solnew=ToExpression[sol,TraditionalForm];
(*sol2=ToString[1/7,TraditionalForm];*)
(*sol=ToString[{SetPrecision[((ToExpression[b])/(ToExpression[t1])),7],((ToExpression[b])/(ToExpression[t1]))},TraditionalForm];*)

(*(*sol=ToString[SetPrecision[((ToExpression[b])/(ToExpression[t1])),7],TraditionalForm];*)*)

parta={StringReplace[text, {"#a"->a,"#b"->b, "#c"->c, "#d"->d, "#e"->e}],vars,solnew} ;


(* part b*)
text=qRandList[textfghjkl[[3]]];

vars={a,b,c,d,e};
(*sol=ToString[SetPrecision[((ToExpression[a]*(ToExpression[a]-1))/(ToExpression[t1]*(ToExpression[t1]-1))),7],TraditionalForm];*)

sol=ToString[{ToString[SetPrecision[((ToExpression[a]*(ToExpression[a]-1))/(ToExpression[t1]*(ToExpression[t1]-1))),7],TraditionalForm],ToString[((ToExpression[a]*(ToExpression[a]-1))/(ToExpression[t1]*(ToExpression[t1]-1))),TraditionalForm]},TraditionalForm];
solnew=ToExpression[sol,TraditionalForm];
partb={StringReplace[text, {"#a"->a,"#b"->b, "#c"->c, "#d"->d, "#e"->e}],vars,solnew} ;

(* part c*)
text=qRandList[textfghjkl[[4]]];

vars={a,b,c,d,e};
(*sol=ToString[SetPrecision[((ToExpression[a]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))) + ((ToExpression[c]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))),7],TraditionalForm];*)

sol=ToString[{ToString[SetPrecision[((ToExpression[a]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))) + ((ToExpression[c]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))),7],TraditionalForm],ToString[((ToExpression[a]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))) + ((ToExpression[c]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))),TraditionalForm]},TraditionalForm];
solnew=ToExpression[sol,TraditionalForm];
partc={StringReplace[text, {"#a"->a,"#b"->b, "#c"->c, "#d"->d, "#e"->e}],vars,solnew} ;




{{question,parta[[1]], partb[[1]],partc[[1]]},{parta[[2]], partb[[2]],partc[[2]]}, {parta[[3]], partb[[3]],partc[[3]]}}



(* it has to be InputForm or ToExpression fails *)
]],InputForm]<>"\n ";


solution1=data<>ToString[Hold[Module[{a,b,c,d,e,f,g,h,i,j,aa,bb,cc,dd,ee, ff, gg, hh, ii, jj,kk, text,list,sol,t1, body={},vars=ertyuiop,options=ERTYUIOP, varsa, varsb, varsc,varsd,b2,b3},



varsa=vars[[1]];
varsb=vars[[2]];
varsc=vars[[3]];


{a,b,c,d,e}=varsa;

t1=ToString[ToExpression[a]+ToExpression[b]+ToExpression[c],TraditionalForm];
g={t1<>" Total"->a<>" R",t1<>" Total"->b<>" Y",t1<>" Total"->c<>" B"};


body={
{ToString[TreePlot[g,VertexLabeling->True],TraditionalForm],
ToString[Column[{
options[[1]]<>":\nP(Yellow) = "<>ToString[(b/t1),TraditionalForm]<>If[Denominator[((ToExpression[b])/(ToExpression[t1]))]==ToExpression[t1],""," = "<>ToString[((ToExpression[b])/(ToExpression[t1])),TraditionalForm]]<>" = "<>ToString[qTrunc6(*SetPrecision*)[((ToExpression[b])/(ToExpression[t1]))(*,4*)],TraditionalForm]<>"\n",

(*b*)
{a,b,c,d,e}=varsb;
options[[2]]<>":\nP(Red & Red) = ("<>ToString[(a/t1),TraditionalForm]<>")("<>ToString[((ToString[ToExpression[a]-1,TraditionalForm])/(ToString[ToExpression[t1]-1,TraditionalForm])),TraditionalForm]<>")"<>" = "<>ToString[(( ToString[ToExpression[a]*(ToExpression[a]-1),TraditionalForm])/( ToString[ToExpression[t1]*(ToExpression[t1]-1),TraditionalForm])),TraditionalForm]<>" = "<>

If[Denominator[(( ToExpression[a]*(ToExpression[a]-1))/(ToExpression[t1]*(ToExpression[t1]-1)))]==(ToExpression[t1]*(ToExpression[t1]-1)),"",ToString[((ToExpression[a]*(ToExpression[a]-1))/( ToExpression[t1]*(ToExpression[t1]-1))),TraditionalForm]<>" = "]<>

ToString[qTrunc6(*SetPrecision*)[((ToExpression[a]*(ToExpression[a]-1))/(ToExpression[t1]*(ToExpression[t1]-1)))(*,4*)],TraditionalForm]<>"\n",

(*c*)
{a,b,c,d,e}=varsc;
options[[3]]<>":\nP(Red & Yellow or Blue & Yellow) = ("<>ToString[(a/t1),TraditionalForm]<>")("<>ToString[(b/(ToString[ToExpression[t1]-1,TraditionalForm])),TraditionalForm]<>") + ("<>ToString[(c/t1),TraditionalForm]<>")("<>ToString[(b/(ToString[ToExpression[t1]-1,TraditionalForm])),TraditionalForm]<>") = \n = "<>
ToString[((ToExpression[a]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))) + ((ToExpression[c]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))),TraditionalForm]<>" = "<>

ToString[qTrunc6(*SetPrecision*)[((ToExpression[a]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1))) + ((ToExpression[c]*(ToExpression[b]))/(ToExpression[t1]*(ToExpression[t1]-1)))(*,4*)],TraditionalForm]<>"\n"
}],TraditionalForm]
},
{Null ,Null(*, Null,Null*)}
};

Panel[Grid[Transpose[body]]]

]],InputForm]<>"\n ";


hint1=ToString[Hold[Module[{aa,bb,cc,dd,ee, ff, gg, hh, ii, jj, text,list,sol, body={},vars=ertyuiop,options=ERTYUIOP},


body={ 
{ToString[Column[{
options[[1]]<>": \n P( an event A happening ) = "<>ToString[("n( event A happening )")/"n( total possibilities with no restrictions )",TraditionalForm]<>"\n", 
options[[2]]<>": \n"<>"\"And\" means multiply in probability"<>"\n", 
options[[3]]<>": \n"<>"\"Or\" means add in probability"<>"\n"
}],TraditionalForm]
},
{Null }
};

Panel[Grid[Transpose[body]]]

]],InputForm]<>"\n ";

data="\n"<>"textfghjkl:="<>ToString[{


(* top question*)
{"Column[{ToString[\"fghjkl. 
● #f% of all TRSM students spend #b hours or more per day on FACEBOOK.
● #g% of all students who spend #b hours per day or more on FACEBOOK have GPA's below #d.
● At TRSM, #h% of all students have GPA's below #d.\",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"},

(*a*)
{"ToString[\"FGHJKLabc)Use the information shown above to fill in the chart below:\"]"},


(*b*)
{"Column[{ToString[\"FGHJKLabc)Determine the probability that a student achieves a GPA of #d or higher, given that they use FACEBOOK for #b hours or more per day.\",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"},

(*c*)
{"Column[{ToString[\"FGHJKLabc)Determine the probability that a student is on FACEBOOK less than #b h given that they have a GPA of #d or more.\",TraditionalForm]"<>","<>"ToString[\" \"]"<>"}]"}
},InputForm]<>";\n ";


variation2=data<>ToString[Hold[Module[{a,b,c,d,f,g,h,i,j,aa,bb,cc,dd,ee, ff, gg, hh, ii, jj,kk, vars,text,list,sol,solnew, parta, partb, partc, partd,question,b2,table,vec}, 


question=qRandList[textfghjkl[[1]]];

text=qRandList[textfghjkl[[2]]];


(*a=all Regular Exercise, b=No Regular Exercise, c= #female regular, d=#male regular*)

vec = {70,10,50};
While[(vec[[1]]-vec[[2]]*0.01*vec[[1]])≥ (100-vec[[3]])(* && vec[[1]]>=vec[[3]]*)(*&& vec[[3]]<vec[[2]]*0.01*vec[[1]]*),
vec[[1]]=RandomInteger[{1,7}]*10;
vec[[2]]=RandomInteger[{1,7}]*10;
vec[[3]] = vec[[1]]+ RandomInteger[{1,3}]*10
];
{f,g,h}=ToString/@vec;

(*{f,g,h}=ToString/@{RandomInteger[{1,7}]*10,RandomInteger[{1,7}]*10,RandomInteger[{1,5}]*10};*)
{a,b,c,d}=ToString/@{RandomInteger[{10,60}],RandomInteger[{1,10}],RandomInteger[{10,60}],RandomInteger[{2,3}]};


(*"\"-\""*)
table={
{"\"All in %\"",ToString[" < "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],ToString[" ⩾ "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],"\"Total\""},
{ToString["GPA < "<>d,TraditionalForm],"\"-\"","\"-\"","\"-\""},
{ToString["GPA ≥ "<>d,TraditionalForm],"\"-\"","\"-\"","\"-\""},
{"Total","\"-\"","\"-\"","100"}};




question=StringReplace[question, {"#a"->a,"#b"->b, "#c"->c,"#d"->d,"#f"->f,"#g"->g,"#h"->h}];

(*{{2,2},{2,3},{2,4},{3,2},{3,3},{3,4},{4,2},{4,3},{4,4}} are the entries where the answers are supposed to be in the table *)
sol={(*first row*)
IntegerPart[ToExpression[h] - IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))]],
IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))],
IntegerPart[ToExpression[h]],

(*second row*)
IntegerPart[IntegerPart[(100 - ToExpression[h] )]- IntegerPart[(ToExpression[f]-((ToExpression[g]*0.01)*(ToExpression[f])))]],
IntegerPart[ToExpression[f] -IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))]],
IntegerPart[100 - ToExpression[h]],

(*third row*)
IntegerPart[100 - ToExpression[f]],
IntegerPart[ToExpression[f]],
100}
;
vars={table,ToString@{{2,2},{2,3},{2,4},{3,2},{3,3},{3,4},{4,2},{4,3},{4,4}},a,b,c,d,f,g,h};
parta={text,vars,sol} ;


(* part b*)
text=qRandList[textfghjkl[[3]]];

(*sol=SetPrecision[((ToExpression[f]*0.01 - ToExpression[g]*0.01*ToExpression[f]*0.01)/(ToExpression[f]*0.01)),10]; *)

sol=ToString[
{ToString[SetPrecision[((ToExpression[f] - ToExpression[g]*0.01*ToExpression[f])/(ToExpression[f])),10],TraditionalForm],
ToString[((IntegerPart[ToExpression[f]*(1- ToExpression[g]*0.01)])/(IntegerPart[ToExpression[f]])),TraditionalForm]
},TraditionalForm];
solnew=ToExpression[sol,TraditionalForm];

vars={a,b, c,f,g,h,ToString@solnew};

partb={StringReplace[text, {"#a"->a,"#b"->b, "#c"->c,"#d"->d}],vars,solnew} ;



(* part c*)
text=qRandList[textfghjkl[[4]]];

sol=ToString[
{ToString[SetPrecision[N[(1 - ToExpression[h]*0.01 )- (ToExpression[f]*0.01 -((ToExpression[g]*0.01)*(ToExpression[f]*0.01)))]/N[1 - ToExpression[h]*0.01],10],TraditionalForm],
ToString[IntegerPart[N[(100 - ToExpression[h] )- (ToExpression[f]-((ToExpression[g]*0.01)*(ToExpression[f])))]]/IntegerPart[100 - ToExpression[h]],TraditionalForm]
},TraditionalForm]; (*4*)
solnew=ToExpression[sol,TraditionalForm];
vars={a,b, c,f,g,h,ToString@solnew};

partc={StringReplace[text, {"#a"->a,"#b"->b, "#c"->c,"#d"->d}],vars,solnew} ;

{{question,parta[[1]], partb[[1]],partc[[1]]},{parta[[2]], partb[[2]],partc[[2]]}, parta[[3]]~Join~{ partb[[3]],partc[[3]]}}(*KLUDGE: part 3 all wrong*)



(* it has to be InputForm or ToExpression fails *)
]],InputForm]<>"\n ";


solution2=data<>ToString[Hold[Module[{a,b,c,d,e,f,g,h,i,j,aa,bb,cc,dd,ee, ff, gg, hh, ii, jj,kk, text,list,sol, body={},vars=ertyuiop,options=ERTYUIOP, varsa, varsb, varsc,varsd,b2,b3,table,locs},



varsa=vars[[1]];
varsb=vars[[2]];
varsc=vars[[3]];


{table,locs,a,b,c,d,f,g,h}=varsa;



body={
{options[[1]]<>":" ,
"Based on the percents from the task:",
makeTextTable[{{"All in %",ToString[" < "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],ToString[" ⩾ "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],"Total"}, 
{ToString["GPA < "<>d,TraditionalForm],
"-",
ToString[ToString[(N[ToExpression[g]*0.01]),TraditionalForm]<>"\[Cross]"<> f<>"="<>ToString[IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))],TraditionalForm],TraditionalForm],
ToString[ToString[(N[ToExpression[h]*0.01]),TraditionalForm]<>"\[Cross]100 = "<>h,TraditionalForm]},

{ToString["GPA ⩾ "<>d,TraditionalForm],
"-",
"-",
"-"},

{"Total",
"-",
ToString[ToString[(N[ToExpression[f]*0.01]),TraditionalForm]<>"\[Cross]100 = "<>f,TraditionalForm],
"100"}}],


"\nNext part of table full fill using substraction:",

makeTextTable[{{"All in %",ToString[" < "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],ToString[" ⩾ "<>b<>"h\n"<>"FACEBOOK",TraditionalForm],"Total"},

{ToString["GPA < "<>d,TraditionalForm],
ToString[(IntegerPart[ToExpression[h]]),TraditionalForm]<>" - "<>ToString[IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))],TraditionalForm]<>" = "<>ToString[IntegerPart[ToExpression[h]- ((ToExpression[g]*0.01)*(ToExpression[f]))],TraditionalForm],
Style[ToString[IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))],TraditionalForm],Blue],
Style[ToString[(IntegerPart[ToExpression[h]]),TraditionalForm],Blue]},


{ToString["GPA ⩾ "<>d,TraditionalForm],
ToString[IntegerPart[100 - ToExpression[h]],TraditionalForm]<>" - "<>ToString[IntegerPart[ToExpression[f] -IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))]],TraditionalForm]<>" = "<> ToString[IntegerPart[IntegerPart[(100 - ToExpression[h] )]- IntegerPart[(ToExpression[f] -IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))])]],TraditionalForm],
ToString[f<>"-"<>ToString[IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))],TraditionalForm]<>"="<>ToString[IntegerPart[ToExpression[f] -IntegerPart[((ToExpression[g]*0.01)*(ToExpression[f]))]],TraditionalForm],TraditionalForm],
ToString["100-"<>h<>"="<>ToString[IntegerPart[100 - ToExpression[h]],TraditionalForm],TraditionalForm]},


{"Total",ToString["100-"<>f<>"="<>ToString[IntegerPart[100 - ToExpression[f]],TraditionalForm],TraditionalForm],Style[f,Blue],
Style["100",Blue]}}],
"",
(*b*)
{a,b, c,f,g,h,sol}=varsb;options[[2]]<>":\n"<>ToString["P( GPA ≥ "<>d,TraditionalForm]<>" | FB ⩾ "<>b<>" ) = "<>ToString[ToString[IntegerPart[ToExpression[f] - ToExpression[g]*0.01*ToExpression[f]],TraditionalForm]/ToString[ToExpression[f],TraditionalForm],TraditionalForm]<>" = "<>

If[Denominator[((IntegerPart[ToExpression[f]*(1- ToExpression[g]*0.01)])/(IntegerPart[ToExpression[f]]))]==ToExpression[f],"",
ToString[Simplify[((IntegerPart[ToExpression[f]*(1- ToExpression[g]*0.01)])/(IntegerPart[ToExpression[f]]))],TraditionalForm]<>" = "]<>
ToString[qTrunc6(*SetPrecision*)[N[((ToExpression[f] - ToExpression[g]*0.01*ToExpression[f])/(ToExpression[f]))](*,1*)],TraditionalForm]<>"\n",

(*c*)
{a,b, c,f,g,h,sol}=varsc;options[[3]]<>":\n"<>ToString["P( FB < "<>b,TraditionalForm]<>" | GPA ⩾ "<>d<>" ) = "<>ToString[ToString[IntegerPart[(100 - ToExpression[h] )- (ToExpression[f]-((ToExpression[g]*0.01)*(ToExpression[f])))],TraditionalForm]/ToString[100 - ToExpression[h],TraditionalForm],TraditionalForm]<>" = "<>

If[Denominator[IntegerPart[N[(100 - ToExpression[h] )- (ToExpression[f]-((ToExpression[g]*0.01)*(ToExpression[f])))]]/IntegerPart[100 - ToExpression[h]]]==(100 - ToExpression[h]),"",
ToString[IntegerPart[N[(100 - ToExpression[h] )- (ToExpression[f]-((ToExpression[g]*0.01)*(ToExpression[f])))]]/IntegerPart[100 - ToExpression[h]],TraditionalForm]<>" = "]<>


ToString[qTrunc6(*SetPrecision*)[N[N[(100 - ToExpression[h] )- (ToExpression[f] -((ToExpression[g]*0.01)*(ToExpression[f])))]/N[100 - ToExpression[h]]](*,2*)],TraditionalForm]<>"\n"},

{Null,Null,Null,Null ,Null, Null,Null,Null}
};

Panel[Grid[Transpose[body]]]

]],InputForm]<>"\n ";


hint2=ToString[Hold[Module[{aa,bb,cc,dd,ee, ff, gg, hh, ii, jj, text,list,sol, body={},vars=ertyuiop,options=ERTYUIOP},


body={
{ToString[Column[{
options[[1]]<>": \n The first and the third clues are standalone cluses. \nThe second clue has something to do with the first clue given.\n", 
options[[2]]<>": \n P( an event happening ) = "<>ToString[("n( event )")/"n( all possibilities with no restrictions )",TraditionalForm]<>"\n", 
options[[3]]<>": \n Think \"Conditional Probability\" \n P(A|B) = "<>ToString[("P(A ⋂ B)")/"P(B)",TraditionalForm]
}],TraditionalForm]
}, 
{Null (*,Null, Null*)}
};

Panel[Grid[Transpose[body]]]

]],InputForm]<>"\n ";

CONFIGURATION AREA

proc1=ToString[{ToString[Hold[Module[{},"level"]],InputForm],variation1,hint1,solution1},InputForm]<>";\n";
proc2=ToString[{ToString[Hold[Module[{},"level"]],InputForm],variation2,hint2,solution2},InputForm]<>";\n";


ToExpression@libGUI;
(* this needs to be Expression make sure to set it always as expression*)
ToExpression@libML;
panelsMIX={
StringReplace[qpanelMulti,{"pn0"->ToString[1],"proc0"->proc1,"libs"->(libLIST<>"\n"<>libNAMES<>"\n"<>libIO<>"\n"<>libERR),"err0"->"{errMIX,errMIX, errMIX}","inputsize0"->"{5,5,5}","level00"->ToString[{1,1,{}}],"max0"->"3","mult0"->"3",
"diag00"->"0","IO00"->"qClick"}],

StringReplace[qpanelMultiTABLE,{"pn0"->ToString[2],"proc0"->proc2,"libs"->(libLIST<>"\n"<>libNAMES<>"\n"<>libIO<>"\n"<>libERR<>"\n"<>libMISC<>"\n"<>libML),"err0"->"{errNO,errMIX,errMIX}","inputsize0"->"{5,5,5}","level00"->ToString[{1,1,{}}],"max0"->"3","mult0"->"5",
"diag00"->"0","IO00"->"qClick"}]};

CDF Area

CDFDeploy[ToFileName[{$UserDocumentsDirectory},"TRSM_PROB_PRAC.cdf"],Column[Table[ReleaseHold[ToExpression[panelsMIX[[i]]]],{i,1,Length[panelsMIX]}]],
"Method"->"Standalone"];

Test Area

Column[Table[ReleaseHold[ToExpression[panelsMIX[[i]]]],{i,1,Length[panelsMIX]}]]