{"version":9,"randomSeed":"fad64cf1e728f564c8abcce86a154a55","graph":{"viewport":{"xmin":-10.406111755649317,"ymin":-8.209093064221314,"xmax":21.234861651486153,"ymax":19.146841746069512},"showGrid":false,"showXAxis":false,"showYAxis":false},"expressions":{"list":[{"type":"folder","id":"56","title":"data","collapsed":true},{"type":"text","id":"13","folderId":"56","text":"node locations"},{"type":"expression","id":"1","folderId":"56","color":"#c74440","latex":"N=\\left[\\left(16.72304524931797,10.160271440184953\\right),\\left(11.120296501607061,4.891411728830875\\right),\\left(11.218984114628505,6.865559928723965\\right),\\left(11.135546793986498,5.7774723570581505\\right),\\left(12.793481857850633,-1.8545679726496285\\right),\\left(12.917645860595588,-2.4029423869480118\\right),\\left(-5.8784797811108565,3.736527385407822\\right),\\left(-4.34036791181013,3.879130722877223\\right),\\left(8.102204838919349,15.819263354592655\\right),\\left(7.451392222887916,15.586685823213509\\right),\\left(12.403969158398205,-2.1844766199402113\\right),\\left(12.210643151065245,-1.5483081805033887\\right),\\left(13.211334736725767,-1.5001435384289263\\right),\\left(12.710220771915546,-2.946306199812542\\right),\\left(11.991709454912675,-2.5452909491854845\\right),\\left(-7.398585729838586,3.0084296351276683\\right),\\left(-6.680405832265109,3.327244966914637\\right),\\left(13.491072029062854,-2.28541213691265\\right),\\left(-5.107707959312878,4.2626844976060445\\right),\\left(-2.157340906171127,-3.8712238888288355\\right),\\left(-1.6350051786280035,-3.4189822361439806\\right),\\left(-5.10514337415345,5.192121770322229\\right),\\left(-5.117013414139215,5.983994653022248\\right),\\left(-3.8078240922326634,11.860633962055635\\right),\\left(-4.774099590438336,10.83583985776776\\right),\\left(-4.13835351740633,11.20457485152245\\right),\\left(1.2772611646548229,14.984603458856911\\right),\\left(1.5310393374547164,16.670128191184652\\right),\\left(1.4309821112110923,15.890790506256765\\right),\\left(1.98698240260679,14.538592306527807\\right),\\left(10.686995854211242,9.277059637161083\\right),\\left(11.329163273381614,9.179547550885571\\right),\\left(9.701039163026346,9.230633759857792\\right),\\left(9.591363951088166,10.789467787630358\\right),\\left(9.95056579096374,9.994251551911045\\right),\\left(10.88860248769774,8.059528745475417\\right),\\left(10.509966756209304,8.725049322689209\\right),\\left(12.066825207897828,6.81470377958439\\right),\\left(2.6741036875768476,-5.73283715137822\\right),\\left(2.97779591526245,-6.431214597768091\\right),\\left(2.3645896175115855,-5.0385842680692265\\right),\\left(1.7779522204340918,9.781727016095036\\right),\\left(1.3618553183917401,9.2282134290833\\right),\\left(5.699411771159035,1.060163482797771\\right),\\left(4.226730347237364,0.7037373570375816\\right),\\left(3.651070943510504,1.5419356823086392\\right),\\left(5.915336506162021,-0.48497614346309614\\right),\\left(4.657495243935575,-0.05476076288214219\\right),\\left(5.3543973947331835,0.2760526712416447\\right),\\left(4.001248222998798,-0.32607082934325454\\right),\\left(5.269730315818122,-0.8728965942484743\\right),\\left(4.913944155913519,0.95412374306651\\right),\\left(3.649499263421202,0.3246517587382529\\right),\\left(-0.35760845189025053,14.192728538337793\\right),\\left(5.14627794946357,7.2906750771486815\\right),\\left(4.495366150057029,7.516092987211825\\right),\\left(0.42528774668876634,14.575302110436045\\right),\\left(-1.0531580696347211,13.85388455901865\\right),\\left(-0.45340733088756385,5.1201757273331845\\right),\\left(-1.0794651409912122,4.834116783455121\\right)\\right]","hidden":true},{"type":"expression","id":"180","folderId":"56","color":"#6042a6","latex":"\\operatorname{length}\\left(N\\right)"},{"type":"text","id":"15","folderId":"56","text":"edge bitmasks: one EBM for each node (in order), where the nth bit of the EBM indicates a connection from the node \"owning\" the EBM to the (n+1)th node"},{"type":"text","id":"160","folderId":"56","text":"E_R, serious data of undisclosed origin"},{"id":"112","type":"table","folderId":"56","columns":[{"values":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60"],"hidden":true,"id":"110","color":"#2d70b3","latex":"x_{1}"},{"values":["M\\left(\\left[137\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[3,2\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[83\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[9\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[5,6,11\\right]\\right)","M\\left(\\left[5,6,11\\right]\\right)","M\\left(\\left[5,6,11\\right]\\right)","M\\left(\\left[5,6,11\\right]\\right)","M\\left(\\left[83\\right]\\right)","M\\left(\\left[7,16\\right]\\right)","M\\left(\\left[5,6,11\\right]\\right)","M\\left(\\left[8,7,22\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[20\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[22\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[24,25\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[27,28\\right]\\right)","M\\left(\\left[27\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[31\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[31,33,34\\right]\\right)","M\\left(\\left[31,3\\right]\\right)","M\\left(\\left[31,33,36,32\\right]\\right)","M\\left(\\left[3\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[39\\right]\\right)","M\\left(\\left[39\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[42\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[45\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[83\\right]\\right)","M\\left(\\left[45,47,44,48\\right]\\right)","M\\left(\\left[45,48\\right]\\right)","M\\left(\\left[47,48\\right]\\right)","M\\left(\\left[45,44,48\\right]\\right)","M\\left(\\left[45,48\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[55\\right]\\right)","M\\left(\\left[27,54\\right]\\right)","M\\left(\\left[54\\right]\\right)","M\\left(\\left[\\right]\\right)","M\\left(\\left[59,3\\right]\\right)"],"hidden":true,"id":"111","color":"#388c46","latex":"E_{R}"}]},{"type":"text","id":"162","folderId":"56","text":"E_C, contrived data"},{"type":"expression","id":"158","folderId":"56","color":"#2d70b3","latex":"E_{C}=\\left[M\\left(\\left[2,3,4,6\\right]\\right),M\\left(\\left[6,3,11\\right]\\right),M\\left(\\left[5,7\\right]\\right),M\\left(\\left[5,7,8\\right]\\right),M\\left(\\left[7\\right]\\right),M\\left(\\left[\\right]\\right),M\\left(\\left[\\right]\\right),M\\left(\\left[9,10,11\\right]\\right),M\\left(\\left[\\right]\\right),M\\left(\\left[11\\right]\\right),M\\left(\\left[\\right]\\right)\\right]"},{"type":"expression","id":"117","folderId":"56","color":"#388c46","latex":"E=E_{R}"},{"type":"folder","id":"52","title":"helper functions","collapsed":true},{"type":"text","id":"11","folderId":"52","text":"extract nth bit of x"},{"type":"expression","id":"9","folderId":"52","color":"#388c46","latex":"B\\left(x,n\\right)=\\operatorname{mod}\\left(\\operatorname{floor}\\left(\\frac{x}{2^{n}}\\right),2\\right)"},{"type":"text","id":"93","folderId":"52","text":"sum bits at given positions to get a bitmask (n ignored)"},{"type":"expression","id":"94","folderId":"52","color":"#388c46","latex":"M\\left(v\\right)=\\sum_{k=1}^{\\operatorname{length}\\left(v\\right)}2^{v\\left[k\\right]-1}"},{"type":"text","id":"41","folderId":"52","text":"is an edge present from node a to node b?"},{"type":"expression","id":"42","folderId":"52","color":"#000000","latex":"C\\left(a,b\\right)=\\min\\left(B\\left(E\\left[a\\right],b-1\\right)+B\\left(E\\left[b\\right],a-1\\right),1\\right)"},{"type":"text","id":"81","folderId":"52","text":"safe reciprocal (returns 1 if input is zero)"},{"type":"expression","id":"82","folderId":"52","color":"#6042a6","latex":"R_{S}\\left(x\\right)=\\frac{1}{x+\\left\\{x=0:1,0\\right\\}}","hidden":true},{"type":"text","id":"68","folderId":"52","text":"normalise vector"},{"type":"expression","id":"69","folderId":"52","color":"#000000","latex":"N_{V}\\left(v\\right)=R_{S}\\left(\\operatorname{distance}\\left(\\left(0,0\\right),v\\right)\\right)v"},{"type":"text","id":"190","folderId":"52","text":"sum of list of points"},{"type":"expression","id":"191","folderId":"52","color":"#2d70b3","latex":"S_{P}\\left(V\\right)=\\left(\\sum_{k=1}^{\\operatorname{length}\\left(V\\right)}V\\left[k\\right].x,\\sum_{k=1}^{\\operatorname{length}\\left(V\\right)}V\\left[k\\right].y\\right)"},{"type":"folder","id":"54","title":"rendering","collapsed":true},{"type":"text","id":"35","folderId":"54","text":"render edge from N[a] to N[b], conditional on the edge's presence"},{"type":"expression","id":"36","folderId":"54","color":"#000000","latex":"R_{C}\\left(a,b\\right)=\\left\\{C\\left(a,b\\right)=1:\\operatorname{polygon}\\left(N\\left[a\\right],N\\left[b\\right]\\right),\\operatorname{polygon}\\left(\\left(0,0\\right),\\left(0,0\\right)\\right)\\right\\}"},{"type":"text","id":"22","folderId":"54","text":"rendering all edges"},{"type":"expression","id":"37","folderId":"54","color":"#000000","latex":"\\left[R_{C}\\left(\\operatorname{floor}\\left(\\frac{n}{\\operatorname{length}\\left(N\\right)}\\right),\\operatorname{mod}\\left(n,\\operatorname{length}\\left(N\\right)\\right)\\right)\\operatorname{for}n=\\left[0...4000\\right]\\right]"},{"type":"text","id":"89","folderId":"54","text":"labelled points"},{"type":"expression","id":"90","folderId":"54","color":"#000000","latex":"I=\\left[1...\\operatorname{length}\\left(N\\right)\\right]"},{"type":"text","id":"170","folderId":"54","text":"colour dependent on change"},{"type":"expression","id":"171","folderId":"54","color":"#c74440","latex":"C_{r}=\\left\\{r=1:\\operatorname{rgb}\\left(0,255,0\\right),\\operatorname{rgb}\\left(0,0,0\\right)\\right\\}"},{"type":"expression","id":"91","folderId":"54","color":"#c74440","latex":"N\\left[I\\right]","showLabel":true,"label":"${I}","labelSize":"1.5","colorLatex":"C_{r}","pointSize":"20"},{"type":"folder","id":"100","title":"loss function","collapsed":true},{"type":"text","id":"173","folderId":"100","text":"while a loss-function approach is interesting, it turns out that a force-based approach works well"},{"type":"text","id":"175","folderId":"100","text":"https://en.wikipedia.org/wiki/Force-directed_graph_drawing"},{"type":"text","id":"102","folderId":"100","text":"we should minimise the sum of squared distances each node has to its connected neighbours"},{"type":"text","id":"104","folderId":"100","text":"hence, this is a gradient-descent problem"},{"type":"text","id":"153","folderId":"100","text":"psi bump function"},{"type":"expression","id":"154","folderId":"100","color":"#6042a6","latex":"P\\left(x\\right)=\\left\\{-1<x<1:\\exp\\left(-\\frac{1}{1-x^{2}}\\right),0\\right\\}","hidden":true},{"type":"text","id":"106","folderId":"100","text":"loss function (split into components), with (x, y) replacing N[k]"},{"type":"expression","id":"125","folderId":"100","color":"#000000","latex":"L_{t}\\left(k,p,q,i\\right)=\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}\\left(C\\left(i,j\\right)\\cdot\\operatorname{distance}\\left(\\left\\{i=k:\\left(p,q\\right),N\\left[i\\right]\\right\\},\\left\\{j=k:\\left(p,q\\right),N\\left[j\\right]\\right\\}\\right)^{2}+P\\left(\\operatorname{distance}\\left(\\left\\{i=k:\\left(p,q\\right),N\\left[i\\right]\\right\\},\\left\\{j=k:\\left(p,q\\right),N\\left[j\\right]\\right\\}\\right)\\right)\\right)"},{"type":"expression","id":"126","folderId":"100","color":"#c74440","latex":"L_{b}\\left(k,p,q,i\\right)=\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}\\operatorname{distance}\\left(\\left\\{i=k:\\left(p,q\\right),N\\left[i\\right]\\right\\},\\left\\{j=k:\\left(p,q\\right),N\\left[j\\right]\\right\\}\\right)^{2}"},{"type":"expression","id":"107","folderId":"100","color":"#2d70b3","latex":"L\\left(k,p,q\\right)=\\frac{\\sum_{i=1}^{\\operatorname{length}\\left(N\\right)}\\frac{L_{t}\\left(k,p,q,i\\right)}{L_{b}\\left(k,p,q,i\\right)}}{\\operatorname{length}\\left(N\\right)}"},{"type":"expression","id":"128","folderId":"100","color":"#388c46","latex":"L\\left(1,N\\left[1\\right].x,N\\left[1\\right].y\\right)"},{"type":"folder","id":"140","title":"partial derivatives of loss function","collapsed":true},{"type":"text","id":"118","folderId":"140","text":"derivative of loss function, wrt x (split into components)"},{"type":"text","id":"156","folderId":"140","text":"TODO: update this derivative L_tx and L_ty to include the P(x) psi component"},{"type":"expression","id":"122","folderId":"140","color":"#2d70b3","latex":"L_{tx}\\left(k,p,q,i\\right)=2\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}\\left(C\\left(i,j\\right)\\left(\\left\\{i=k:p,N\\left[i\\right].x\\right\\}-\\left\\{j=k:p,N\\left[j\\right].x\\right\\}\\right)\\left(\\left\\{i=k:1,0\\right\\}-\\left\\{j=k:1,0\\right\\}\\right)+0\\right)"},{"type":"expression","id":"127","folderId":"140","color":"#2d70b3","latex":"L_{bx}\\left(k,p,q,i\\right)=2\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}\\left(\\left\\{i=k:p,N\\left[i\\right].x\\right\\}-\\left\\{j=k:p,N\\left[j\\right].x\\right\\}\\right)\\left(\\left\\{i=k:1,0\\right\\}-\\left\\{j=k:1,0\\right\\}\\right)"},{"type":"expression","id":"119","folderId":"140","color":"#6042a6","latex":"L_{x}\\left(k,p,q\\right)=\\left(\\sum_{i=1}^{\\operatorname{length}\\left(N\\right)}\\frac{L_{tx}\\left(k,p,q,i\\right)L_{b}\\left(k,p,q,i\\right)-L_{t}\\left(k,p,q,i\\right)L_{bx}\\left(k,p,q,i\\right)}{L_{b}\\left(k,p,q,i\\right)^{2}}\\right)\\cdot\\frac{1}{\\operatorname{length}\\left(N\\right)}"},{"type":"text","id":"133","folderId":"140","text":"derivative of loss function, wrt y (split into components)"},{"type":"expression","id":"134","folderId":"140","color":"#388c46","latex":"L_{ty}\\left(k,p,q,i\\right)=2\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}C\\left(i,j\\right)\\left(\\left\\{i=k:q,N\\left[i\\right].y\\right\\}-\\left\\{j=k:q,N\\left[j\\right].y\\right\\}\\right)\\left(\\left\\{i=k:1,0\\right\\}-\\left\\{j=k:1,0\\right\\}\\right)"},{"type":"expression","id":"135","folderId":"140","color":"#6042a6","latex":"L_{by}\\left(k,p,q,i\\right)=2\\sum_{j=1}^{\\operatorname{length}\\left(N\\right)}\\left(\\left\\{i=k:q,N\\left[i\\right].y\\right\\}-\\left\\{j=k:q,N\\left[j\\right].y\\right\\}\\right)\\left(\\left\\{i=k:1,0\\right\\}-\\left\\{j=k:1,0\\right\\}\\right)"},{"type":"expression","id":"136","folderId":"140","color":"#000000","latex":"L_{y}\\left(k,p,q\\right)=\\left(\\sum_{i=1}^{\\operatorname{length}\\left(N\\right)}\\frac{L_{ty}\\left(k,p,q,i\\right)L_{b}\\left(k,p,q,i\\right)-L_{t}\\left(k,p,q,i\\right)L_{by}\\left(k,p,q,i\\right)}{L_{b}\\left(k,p,q,i\\right)^{2}}\\right)\\cdot\\frac{1}{\\operatorname{length}\\left(N\\right)}"},{"type":"folder","id":"142","title":"gradient descent","collapsed":true},{"type":"expression","id":"149","folderId":"142","color":"#000000","latex":"V_{G}\\left(c\\right)=-N_{V}\\left(\\left(L_{x}\\left(c,N\\left[c\\right].x,N\\left[c\\right].y\\right),L_{y}\\left(c,N\\left[c\\right].x,N\\left[c\\right].y\\right)\\right)\\right)"},{"type":"folder","id":"58","title":"graph-node gravity (graphity! ... not quite)"},{"type":"text","id":"60","folderId":"58","text":"attraction velocity on node a due to node b (spring physics)"},{"type":"expression","id":"61","folderId":"58","color":"#6042a6","latex":"V_{A}\\left(a,b\\right)=3\\cdot C\\left(a,b\\right)\\cdot N_{V}\\left(N\\left[b\\right]-N\\left[a\\right]\\right)\\cdot\\left(\\operatorname{distance}\\left(N\\left[a\\right],N\\left[b\\right]\\right)-1\\right)"},{"type":"text","id":"85","folderId":"58","text":"repulsion velocity on node a due to node b (electrical repulsion)"},{"type":"expression","id":"86","folderId":"58","color":"#2d70b3","latex":"V_{R}\\left(a,b\\right)=N_{V}\\left(N\\left[a\\right]-N\\left[b\\right]\\right)\\cdot R_{S}\\left(\\operatorname{distance}\\left(N\\left[a\\right],N\\left[b\\right]\\right)^{2}\\right)"},{"type":"text","id":"187","folderId":"58","text":"attraction-repulsion velocity sum on node a due to node b"},{"type":"expression","id":"188","folderId":"58","color":"#000000","latex":"V_{B}\\left(a,b\\right)=N_{V}\\left(N\\left[b\\right]-N\\left[a\\right]\\right)\\cdot\\left(3\\cdot C\\left(a,b\\right)\\cdot\\left(\\operatorname{distance}\\left(N\\left[a\\right],N\\left[b\\right]\\right)\\right)-R_{S}\\left(\\operatorname{distance}\\left(N\\left[a\\right],N\\left[b\\right]\\right)^{2}\\right)\\right)"},{"type":"text","id":"63","folderId":"58","text":"total velocities on each node"},{"type":"expression","id":"64","folderId":"58","color":"#c74440","latex":"V_{T}=\\left[S_{P}\\left(V_{B}\\left(n,\\left[1...\\operatorname{length}\\left(N\\right)\\right]\\right)\\right)\\operatorname{for}n=\\left[1...\\operatorname{length}\\left(N\\right)\\right]\\right]","hidden":true},{"type":"text","id":"164","folderId":"58","text":"total change"},{"type":"expression","id":"165","folderId":"58","color":"#c74440","latex":"C_{T}\\left(\\right)=\\operatorname{total}\\left(\\left[\\operatorname{distance}\\left(\\left(0,0\\right),p\\right)\\operatorname{for}p=V_{T}\\right]\\right)"},{"type":"folder","id":"146","title":"actions"},{"type":"text","id":"71","folderId":"146","text":"time increment"},{"type":"expression","id":"72","folderId":"146","color":"#2d70b3","latex":"d_{t}=0.001","slider":{"hardMin":true,"hardMax":true,"min":"0"}},{"type":"expression","id":"168","folderId":"146","color":"#6042a6","latex":"r=1","hidden":true,"slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1","step":"1"}},{"type":"text","id":"74","folderId":"146","text":"update"},{"type":"expression","id":"75","folderId":"146","color":"#6042a6","latex":"S=\\left\\{r=1:\\left(N\\to N+d_{t}V_{T}\\left(\\left[1...\\operatorname{length}\\left(N\\right)\\right]\\right),r\\to\\left\\{\\frac{C_{T}\\left(\\right)}{\\operatorname{length}\\left(N\\right)}>0.01:1,0\\right\\}\\right),\\left(r\\to r\\right)\\right\\}"},{"type":"text","id":"78","folderId":"146","text":"reset"},{"type":"expression","id":"79","folderId":"146","color":"#2d70b3","latex":"R=\\left(N\\to\\left[\\left(0,0\\right),\\left(2,1\\right),\\left(1,3\\right),\\left(4,3\\right),\\left(4,1\\right),\\left(1,2\\right),\\left(5,0\\right),\\left(6,1\\right),\\left(5,2\\right),\\left(3,4\\right),\\left(1,4\\right),\\left(5,3\\right),\\left(3,2\\right),\\left(2,4\\right),\\left(1,1\\right)\\right]\\right)"},{"type":"text","id":"97","folderId":"146","text":"chaotic reset"},{"type":"expression","id":"98","folderId":"146","color":"#2d70b3","latex":"Q=\\left(N\\to10\\cdot\\left(\\operatorname{random}\\left(\\operatorname{length}\\left(E\\right)\\right),\\operatorname{random}\\left(\\operatorname{length}\\left(E\\right)\\right)\\right),r\\to1\\right)"},{"type":"text","id":"178","folderId":"146","text":"run this when you add a new node"},{"type":"expression","id":"179","folderId":"146","color":"#388c46","latex":"A=\\left(N\\to\\operatorname{join}\\left(N,10\\cdot\\left(\\operatorname{random}\\left(\\right),\\operatorname{random}\\left(\\right)\\right)\\right)\\right)"},{"type":"text","id":"183","folderId":"146","text":"customise one specific node-position"},{"type":"expression","id":"181","folderId":"146","color":"#000000","latex":"C_{N}\\left(k,v\\right)=\\left(N\\to\\operatorname{join}\\left(N\\left[1...\\left(k-1\\right)\\right],v,N\\left[\\left(k+1\\right)...\\right]\\right)\\right)"},{"type":"expression","id":"185","folderId":"146","color":"#388c46","latex":"C_{P}=\\left(0.7,-0.4\\right)"},{"type":"expression","id":"184","folderId":"146","color":"#2d70b3","latex":"C_{N}\\left(41,C_{P}\\right)"}],"ticker":{"handlerLatex":"S","minStepLatex":"30","open":true}}}