{"size": 312070, "ext": "js", "max_stars_repo_path": "app/dist/js/app.a978f178.js", "max_stars_repo_name": "jarusified/CallFlow", "max_stars_repo_stars_event_min_datetime": "2020-06-03T19:29:46.000Z", "max_stars_repo_stars_event_max_datetime": "2021-08-17T09:26:43.000Z", "max_issues_repo_path": "app/dist/js/app.a978f178.js", "max_issues_repo_name": "jarusified/CallFlow", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "app/dist/js/app.a978f178.js", "max_forks_repo_name": "jarusified/CallFlow", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 2, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 156035.0, "max_line_length": 312029, "alphanum_fraction": 0.7270836671}
(function(t){function e(e){for(var i,o,l=e[0],n=e[1],h=e[2],c=0,u=[];c<l.length;c++)o=l[c],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&u.push(a[o][0]),a[o]=0;for(i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i]);d&&d(e);while(u.length)u.shift()();return r.push.apply(r,h||[]),s()}function s(){for(var t,e=0;e<r.length;e++){for(var s=r[e],i=!0,l=1;l<s.length;l++){var n=s[l];0!==a[n]&&(i=!1)}i&&(r.splice(e--,1),t=o(o.s=s[0]))}return t}var i={},a={app:0},r=[];function o(e){if(i[e])return i[e].exports;var s=i[e]={i:e,l:!1,exports:{}};return t[e].call(s.exports,s,s.exports,o),s.l=!0,s.exports}o.m=t,o.c=i,o.d=function(t,e,s){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},o.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)o.d(s,i,function(e){return t[e]}.bind(null,i));return s},o.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="/";var l=window["webpackJsonp"]=window["webpackJsonp"]||[],n=l.push.bind(l);l.push=e,l=l.slice();for(var h=0;h<l.length;h++)e(l[h]);var d=n;r.push([0,"chunk-vendors"]),s()})({0:function(t,e,s){t.exports=s("56d7")},"0007":function(t,e,s){},1:function(t,e){},"183b":function(t,e,s){"use strict";var i=s("ceb8"),a=s.n(i);a.a},"56d7":function(t,e,s){"use strict";s.r(e);var i=s("2b0e"),a=s("2f62"),r=s("8c4f"),o=s("ce5b"),l=s.n(o),n=s("5f5b"),h=s("43f9"),d=s.n(h),c=(s("51def"),s("e094"),s("bf40"),s("d1e7"),function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-app",[s("div",{attrs:{id:"app"}},[s("v-toolbar",{attrs:{id:"toolbar",color:"teal",fixed:"",app:"","clipped-right":""}},[s("v-toolbar-title",{staticStyle:{"margin-right":"3em",color:"white"}},[t._v(" CallFlow ")]),s("v-btn",{attrs:{outlined:""}},[s("router-link",{attrs:{to:"/single",replace:""}},[t._v("Single")])],1),t.runCounts>1?s("v-btn",{attrs:{outlined:""}},[s("router-link",{attrs:{to:"/ensemble",replace:""}},[t._v("Ensemble")])],1):t._e()],1),s("router-view"),s("v-content",[s("v-layout",[s("v-container",{attrs:{fluid:""}},[s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" General Information ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" Experiment: "+t._s(t.data.experiment)+" ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" Data path: "+t._s(t.data.data_path)+" ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" .callflow save path: "+t._s(t.data.save_path)+" ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" Filter by attribute: "+t._s(t.data.filter_by)+" ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" Filter percentage: "+t._s(t.data.filter_perc)+" ")])],1),s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v(" Group by attribute: "+t._s(t.data.group_by)+" ")])],1)],1),s("v-container",[s("v-card",{attrs:{tile:""}},[s("v-card-title",[t._v("Runtime Information")]),s("v-data-table",{staticClass:"elevation-1",attrs:{dense:"",headers:t.runtimeHeaders,items:t.runtime,"items-per-page":5},scopedSlots:t._u([{key:"items",fn:function(e){return[s("tr",[s("td",{attrs:{nowrap:"true"}},[t._v(t._s(e.item.run))]),s("td",{attrs:{nowrap:"true"}},[t._v(" "+t._s(e.item.min_inclusive_runtime)+" ")]),s("td",{attrs:{nowrap:"true"}},[t._v(" "+t._s(e.item.max_inclusive_runtime)+" ")]),s("td",{attrs:{nowrap:"true"}},[t._v(" "+t._s(e.item.min_exclusive_runtime)+" ")]),s("td",{attrs:{nowrap:"true"}},[t._v(" "+t._s(e.item.max_exclusive_runtime)+" ")])])]}}])})],1)],1)],1)],1)],1)])}),u=[];class f{constructor(){this.url="http://localhost:5000/"}timeoutPromise(t,e){return new Promise((s,i)=>{const a=setTimeout(()=>{i(new Error("Promise times out"))},t);e.then(t=>{clearTimeout(a),s(t)},t=>{clearTimeout(a),i(t)})})}POSTRequest(t="",e={}){const s=this.url+t;console.log("[POST Request]",s,"body: ",e);const i=fetch(s,{method:"POST",cache:"default",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(t=>{switch(t.status){case 200:return t.json();case 401:return Promise.reject("unauthorized");case 500:return Promise.reject("not_allowed");default:return Promise.reject("unknown_error")}}).catch(t=>(console.error(t),Promise.reject(t)));return this.timeoutPromise(1e4,i)}GETRequest(t="",e={"Content-Type":"application/json"}){const s=this.url+t;console.debug("[GET Request]",s,e);const i=fetch(s,{method:"GET",headers:e,cache:"default",credentials:"same-origin"}).then(t=>{switch(t.status){case 200:return t.json();case 401:return Promise.reject("unauthorized");case 500:return Promise.reject("not_allowed");default:return Promise.reject("unknown_error")}}).catch(t=>(console.error(t),Promise.reject(t)));return this.timeoutPromise(1e4,i)}}var m=new f,p={name:"App",data:()=>({data:{},runCounts:0,runtimeHeaders:[{text:"Run",value:"run"},{text:"Min. Inclusive runtime (μs)",value:"min_inclusive_runtime"},{text:"Max. Inclusive runtime (μs)",value:"max_inclusive_runtime",sortable:!0},{text:"Min. Exclusive runtime (μs)",value:"min_exclusive_runtime"},{text:"Max. Exclusive runtime (μs)",value:"max_exclusive_runtime"}],runtime:[],expanded:[],singleExpand:!1,moduleHeaders:[{text:"Module",value:"module"},{text:"Inclusive runtime (μs)",value:"inclusive_runtime",sortable:!0},{text:"Exclusive runtime (μs)",value:"exclusive_runtime"},{text:"Imbalance perc (%)",value:"imbalance_perc"},{text:"Number of Callsites",value:"number_of_callsites"},{text:"",value:"data-table-expand"}],modules:[],auxiliarySortBy:"time (inc)",selectedRunBinCount:20,selectedMPIBinCount:20}),mounted(){this.fetchData()},methods:{async fetchData(){this.data=await m.GETRequest("init",{dataset_path:""}),this.runs=Object.keys(this.data.parameter_props.data_path),this.runCounts=this.runs.length,this.runtime_props=this.data.runtime_props,this.module_callsite_map=this.data.module_callsite_map,this.setStore(),this.init()},init(){this.runtimePropsTable(),this.moduleCallsiteTable()},setStore(){this.$store.selectedDatasets=this.runs,this.$store.numOfRuns=this.runs.length,this.$store.maxExcTime=this.data.runtime_props.maxExcTime,this.$store.minExcTime=this.data.runtime_props.minExcTime,this.$store.maxIncTime=this.data.runtime_props.maxIncTime,this.$store.minIncTime=this.data.runtime_props.minIncTime,this.$store.numOfRanks=this.data.runtime_props.numOfRanks},runtimePropsTable(){for(let t of this.runs)this.runtime.push({run:t,min_inclusive_runtime:this.runtime_props.minIncTime[t],max_inclusive_runtime:this.runtime_props.maxIncTime[t],min_exclusive_runtime:this.runtime_props.minExcTime[t],max_exclusive_runtime:this.runtime_props.maxExcTime[t]})},moduleCallsiteTable(){for(let t in this.module_callsite_map)this.modules.push({module:t,number_of_callsites:this.data.module_callsite_map[t].length})}}},g=p,x=(s("9993"),s("2877")),b=Object(x["a"])(g,c,u,!1,null,null,null),y=b.exports,v=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-app",{attrs:{id:"inspire"}},[s("v-toolbar",{attrs:{id:"toolbar",color:"teal",dark:"",fixed:"",app:"","clipped-right":""}},[s("v-toolbar-side-icon",{on:{click:function(e){e.stopPropagation(),t.left=!t.left}}},[s("v-icon",[t._v("settings")])],1),s("v-toolbar-title",{staticStyle:{"margin-right":"3em"}},[t._v(t._s(t.appName))]),s("v-flex",{staticClass:"ma-2",attrs:{xs3:""}},[s("v-select",{attrs:{label:"Select a run (Sorted by inclusive runtime)",items:t.datasets,"menu-props":{maxHeight:"400"},box:""},on:{change:function(e){return t.updateTargetDataset()}},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}},{key:"item",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}}]),model:{value:t.selectedTargetDataset,callback:function(e){t.selectedTargetDataset=e},expression:"selectedTargetDataset"}})],1),s("v-spacer"),s("v-flex",{staticClass:"ma-1",attrs:{xs2:""}},[s("v-select",{attrs:{label:"Graph to visualize",items:t.formats,"menu-props":{maxHeight:"400"},box:""},on:{change:function(e){return t.updateFormat()}},model:{value:t.selectedFormat,callback:function(e){t.selectedFormat=e},expression:"selectedFormat"}})],1)],1),s("v-navigation-drawer",{attrs:{temporary:"",fixed:""},model:{value:t.left,callback:function(e){t.left=e},expression:"left"}},[s("v-btn",{attrs:{slot:"activator",color:"primary",dark:""},slot:"activator"},[t._v("Open Dialog")]),s("v-card",{attrs:{flex:"","fill-height":"",id:"control-panel"}},[s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{attrs:{icon:""}},[s("v-icon",{on:{click:function(e){return t.reset()}}},[t._v("refresh")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Visual Encoding")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Metric",items:t.metrics,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateMetric()}},model:{value:t.selectedMetric,callback:function(e){t.selectedMetric=e},expression:"selectedMetric"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Number of bins for MPI Distribution",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateMPIBinCount()}},model:{value:t.selectedMPIBinCount,callback:function(e){t.selectedMPIBinCount=e},expression:"selectedMPIBinCount"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Scale",items:t.scales,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateScale()}},model:{value:t.selectedScale,callback:function(e){t.selectedScale=e},expression:"selectedScale"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Colors")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Runtime Color Map",items:t.runtimeColorMap,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedRuntimeColorMap,callback:function(e){t.selectedRuntimeColorMap=e},expression:"selectedRuntimeColorMap"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color points (3-9)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorPoint,callback:function(e){t.selectedColorPoint=e},expression:"selectedColorPoint"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color minimum (in seconds)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorMinText,callback:function(e){t.selectedColorMinText=e},expression:"selectedColorMinText"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color maximum (in seconds)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorMaxText,callback:function(e){t.selectedColorMaxText=e},expression:"selectedColorMaxText"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Call site Information")])],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Sort by",items:t.sortByModes,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateRuntimeSortBy()}},model:{value:t.selectedRuntimeSortBy,callback:function(e){t.selectedRuntimeSortBy=e},expression:"selectedRuntimeSortBy"}})],1)],1)],1)],1),"Single"==t.selectedMode?s("v-content",{staticClass:"pt-auto"},[s("v-layout",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}]},[s("splitpanes",{staticClass:"default-theme",attrs:{id:"callgraph-dashboard"}},[s("splitpanes",{attrs:{horizontal:"","splitpanes-size":25}},[s("SingleHistogram",{ref:"SingleHistogram"}),s("SingleScatterplot",{ref:"SingleScatterplot"})],1),s("splitpanes",{attrs:{horizontal:"","splitpanes-size":55}},[s("SuperGraph",{ref:"SingleSuperGraph"})],1),s("splitpanes",{attrs:{horizontal:"","splitpanes-size":20}},[s("CallsiteInformation",{ref:"CallsiteInformation"})],1)],1)],1),s("v-layout",{directives:[{name:"show",rawName:"v-show",value:"CCT"==t.selectedFormat,expression:"selectedFormat == 'CCT'"}]},[s("splitpanes",{attrs:{id:"single-cct-dashboard"}},[s("splitpanes",{attrs:{horizontal:"","splitpanes-size":100}},[s("CCT",{ref:"SingleCCT"})],1)],1)],1)],1):t._e(),s("v-footer",{attrs:{id:"footer",color:"teal",app:""}},[t._v(" Lawrence Livermore National Laboratory and VIDi Labs, University of California, Davis "),s("v-spacer"),s("span",[t._v("© 2020")])],1)],1)},$=[],C=s("5698"),M=s("6149");const _={0:[.31,.48,.65],1:[.94,.56,.22],2:[.87,.35,.36],3:[.47,.72,.7],4:[.36,.63,.32],5:[.93,.78,.33],6:[.69,.48,.63],7:[.99,.62,.66],8:[.61,.46,.38],9:[.73,.69,.67],blue:[.31,.48,.65],orange:[.94,.56,.22],red:[.87,.35,.36],teal:[.47,.72,.7],green:[.36,.63,.32],yellow:[.93,.78,.33],purple:[.69,.48,.63],pink:[.99,.62,.66],brown:[.61,.46,.38],gray:[.73,.69,.67]},T={coolwarm:[[.33479085,.28308437,.75649522],[.33899903,.290177126,.762712568],[.343207654,.297250671,.768868416],[.347417048,.304305324,.774961783],[.351627529,.311341308,.780991701],[.355839407,.31835875,.786957213],[.36005298,.325357701,.792857371],[.364268538,.332338134,.798691243],[.368486361,.339299959,.804457904],[.372706719,.346243025,.810156445],[.376929872,.353167127,.815785967],[.381156069,.360072011,.821345583],[.385385551,.366957379,.826834419],[.389618546,.373822891,.832251614],[.393855272,.380668171,.837596318],[.398095935,.387492809,.842867695],[.402340732,.394296365,.848064921],[.406589846,.401078368,.853187185],[.410843451,.407838324,.85823369],[.415101708,.414575715,.863203651],[.419364766,.42129,.868096298],[.423632761,.42798062,.872910872],[.42790582,.434646997,.877646629],[.432184055,.441288536,.882302838],[.436467566,.447904626,.886878783],[.440756441,.454494645,.891373761],[.445050754,.461057956,.895787081],[.449350569,.46759391,.900118069],[.453655933,.474101849,.904366064],[.457966884,.480581104,.908530419],[.462283444,.487030998,.912610501],[.466605623,.493450846,.916605692],[.470933417,.499839955,.920515388],[.475266811,.506197626,.924339],[.479605773,.512523155,.928075953],[.483950261,.51881583,.931725687],[.488300218,.525074937,.935287658],[.492655572,.531299757,.938761334],[.497016241,.537489567,.9421462],[.501382127,.543643642,.945441756],[.505753118,.549761254,.948647516],[.510129092,.555841671,.951763009],[.514509909,.561884161,.954787781],[.51889542,.56788799,.957721391],[.52328546,.573852423,.960563413],[.527679851,.579776725,.96331344],[.532078401,.58566016,.965971076],[.536480908,.591501991,.968535941],[.540887154,.597301482,.971007674],[.545296909,.603057899,.973385925],[.54970993,.608770507,.975670362],[.554125961,.614438572,.977860667],[.558544733,.620061363,.97995654],[.562965965,.625638149,.981957693],[.567389365,.631168202,.983863856],[.571814625,.636650795,.985674775],[.576241429,.642085204,.987390209],[.580669445,.647470707,.989009935],[.585098332,.652806586,.990533745],[.589527737,.658092124,.991961445],[.593957293,.663326609,.99329286],[.598386625,.668509332,.994527827],[.602815344,.673639585,.995666201],[.607243051,.678716668,.996707851],[.611669336,.683739881,.997652664],[.61609378,.688708529,.998500538],[.620515949,.693621923,.999251393],[.624935404,.698479377,.999905158],[.629351691,.70328021,1.000461782],[.633764351,.708023743,1.000921227],[.63817291,.712709307,1.001283473],[.64257689,.717336232,1.001548513],[.646975798,.721903859,1.001716355],[.651369136,.726411529,1.001787026],[.655756395,.730858592,1.001760564],[.660137059,.735244402,1.001637025],[.664510601,.739568319,1.00141648],[.668876488,.743829708,1.001099013],[.673234178,.74802794,1.000684725],[.67758312,.752162394,1.000173733],[.681922758,.756232453,.999566166],[.686252527,.760237507,.998862171],[.690571854,.764176951,.998061908],[.69488016,.76805019,.997165552],[.699176859,.771856631,.996173293],[.703461358,.775595691,.995085337],[.707733059,.779266794,.993901902],[.711991357,.782869367,.992623222],[.71623564,.786402849,.991249546],[.720465291,.789866684,.989781136],[.724679689,.793260321,.98821827],[.728878207,.79658322,.986561237],[.73306021,.799834846,.984810343],[.737225063,.803014673,.982965908],[.741372122,.806122181,.981028263],[.745500742,.80915686,.978997757],[.749610271,.812118205,.97687475],[.753700055,.81500572,.974659614],[.757769435,.817818918,.972352739],[.76181775,.820557319,.969954524],[.765844332,.823220451,.967465384],[.769848514,.825807851,.964885746],[.773829624,.828319063,.962216051],[.777786987,.83075364,.95945675],[.781719925,.833111145,.956608311],[.78562776,.835391146,.953671211],[.789509808,.837593223,.950645941],[.793365387,.839716962,.947533006],[.79719381,.84176196,.944332919],[.80099439,.843727822,.94104621],[.804766438,.84561416,.937673417],[.808509264,.847420597,.934215092],[.812222176,.849146765,.930671799],[.815904482,.850792304,.927044111],[.81955549,.852356864,.923332614],[.823174505,.853840103,.919537906],[.826760834,.855241688,.915660596],[.830313782,.856561298,.911701301],[.833832656,.857798619,.907660652],[.837316761,.858953345,.903539289],[.840765403,.860025183,.899337864],[.844177889,.861013847,.895057037],[.847553526,.861919061,.89069748],[.850891622,.862740559,.886259872],[.854191486,.863478084,.881744906],[.857452428,.864131388,.877153282],[.860673759,.864700235,.872485708],[.863854792,.865184396,.867742904],[.867330172,.864540194,.862606204],[.871070379,.862768866,.857104915],[.874730228,.860914529,.851568855],[.878309568,.858977443,.845998954],[.881808244,.856957876,.840396142],[.885226105,.854856108,.834761348],[.888562998,.852672423,.829095499],[.89181877,.850407119,.823399519],[.894993269,.848060498,.817674334],[.898086346,.845632873,.811920864],[.901097852,.843124565,.80614003],[.90402764,.840535903,.800332749],[.906875564,.837867225,.794499937],[.909641483,.835118874,.788642506],[.912325257,.832291206,.782761367],[.914926747,.829384579,.776857427],[.917445821,.826399364,.770931591],[.919882348,.823335935,.76498476],[.9222362,.820194675,.759017834],[.924507255,.816975975,.753031706],[.926695392,.813680232,.74702727],[.928800497,.810307851,.741005413],[.930822459,.806859241,.73496702],[.932761172,.803334821,.728912971],[.934616533,.799735013,.722844143],[.936388447,.796060247,.71676141],[.938076822,.792310959,.71066564],[.939681571,.78848759,.704557696],[.941202613,.784590588,.69843844],[.942639873,.780620404,.692308727],[.943993281,.776577495,.686169407],[.945262772,.772462324,.680021326],[.94644829,.768275358,.673865327],[.947549782,.764017068,.667702244],[.948567201,.75968793,.66153291],[.949500509,.755288422,.65535815],[.950349672,.750819028,.649178786],[.951114665,.746280235,.642995633],[.951795465,.741672531,.636809501],[.952392062,.736996408,.630621194],[.952904448,.732252362,.624431512],[.953332623,.727440889,.618241248],[.953676597,.722562488,.612051188],[.953936383,.717617658,.605862116],[.954112003,.7126069,.599674805],[.954203486,.707530716,.593490026],[.95421087,.702389608,.587308543],[.954134199,.697184077,.581131111],[.953973524,.691914624,.574958483],[.953728904,.686581749,.568791403],[.953400406,.68118595,.562630608],[.952988106,.675727722,.556476831],[.952492085,.670207559,.550330796],[.951912435,.664625951,.544193222],[.951249252,.658983382,.538064822],[.950502644,.653280336,.531946299],[.949672726,.647517287,.525838353],[.948759618,.641694704,.519741675],[.947763452,.635813053,.51365695],[.946684367,.629872786,.507584854],[.94552251,.623874352,.50152606],[.944278035,.617818187,.495481231],[.942951107,.611704718,.489451023],[.941541896,.60553436,.483436086],[.940050585,.599307515,.477437063],[.938477361,.593024572,.471454589],[.936822421,.586685904,.465489292],[.935085971,.580291867,.459541794],[.933268225,.573842799,.453612707],[.931369406,.567339019,.44770264],[.929389745,.560780821,.44181219],[.927329482,.554168481,.43594195],[.925188866,.547502243,.430092505],[.922968152,.540782329,.424264432],[.920667608,.534008926,.418458302],[.918287506,.52718219,.412674678],[.915828131,.520302242,.406914115],[.913289773,.513369162,.401177161],[.910672733,.506382987,.395464359],[.90797732,.499343711,.389776241],[.905203852,.492251274,.384113335],[.902352654,.485105562,.37847616],[.899424062,.477906402,.372865229],[.89641842,.470653555,.367281047],[.893336079,.463346707,.361724112],[.890177401,.455985471,.356194915],[.886942755,.448569368,.35069394],[.88363252,.441097828,.345221665],[.880247082,.433570174,.339778559],[.876786838,.425985617,.334365086],[.87325219,.418343238,.328981703],[.869643553,.410641979,.32362886],[.865961348,.402880625,.318306999],[.862206003,.395057791,.313016558],[.858377959,.387171894,.307757966],[.854477661,.379221139,.302531647],[.850505566,.371203487,.29733802],[.846462136,.363116629,.292177494],[.842347845,.354957949,.287050476],[.838163173,.346724482,.281957365],[.83390861,.338412871,.276898554],[.829584652,.330019309,.27187443],[.825191806,.321539471,.266885377],[.820730585,.312968442,.26193177],[.816201511,.304300615,.257013981],[.811605116,.295529586,.252132377],[.806941937,.286648013,.247287319],[.802212521,.277647446,.242479163],[.797417423,.268518124,.237708261],[.792557206,.259248713,.232974961],[.787632439,.249825977,.228279608],[.782643702,.24023436,.223622539],[.77759158,.230455444,.219004091],[.772476668,.220467236,.214424597],[.767299568,.210243209,.209884384],[.762060889,.199751005,.20538378],[.756761248,.188950611,.200923108],[.75140127,.177791763,.196502688],[.745981587,.166210104,.192122839],[.740502838,.154121318,.187783878],[.734965671,.14141175,.183486121],[.729370739,.127922592,.179229881],[.723718704,.113421308,.175015472],[.718010235,.097545076,.170843206],[.712246006,.079673653,.166713395],[.7064267,.058582625,.162626353],[.700553008,.031592475,.158582393],[.694625625,.00296461,.154581828]],viridis:[[.282364553,0,.331010194],[.284420163,0,.337034427],[.286408722,0,.34299986],[.288328018,0,.348901425],[.290179378,.002654874,.35473812],[.291960279,.007927574,.360508963],[.29367257,.013523701,.366210869],[.295314593,.019446928,.371841938],[.296885699,.025709273,.377402605],[.298386438,.032320043,.382889257],[.299815971,.039284989,.388299074],[.301173065,.046263605,.393633812],[.302457462,.052924483,.398887738],[.303669591,.059347679,.404062513],[.304807765,.065576775,.409154501],[.305872694,.071646986,.414162002],[.306863542,.077587483,.419085269],[.307780278,.083417867,.423919761],[.308622494,.08915478,.428667953],[.309390937,.094810863,.433324403],[.310084053,.100399347,.437890473],[.310702155,.105925447,.442362838],[.311245178,.111398995,.446741648],[.31171373,.116826841,.451025994],[.312107495,.122211059,.455213669],[.312426421,.12756,.45930581],[.312671026,.132871715,.463299323],[.312842848,.13815391,.467195234],[.312939857,.143406419,.470990554],[.312964756,.148633022,.474688209],[.312917276,.153833244,.478285325],[.31279806,.159008292,.481781833],[.312607967,.164161309,.485179603],[.312347642,.169291531,.488475883],[.312018787,.174399964,.491673367],[.311623294,.179485609,.494771427],[.311159847,.184551638,.497770623],[.310631264,.189595869,.500670447],[.310038598,.194617768,.503473667],[.309383825,.199620123,.50617997],[.308668394,.204599571,.508789973],[.307893026,.209558887,.511307017],[.30705867,.214494832,.513728818],[.306169637,.219410015,.516060621],[.305226907,.224301183,.518300247],[.304230908,.229169665,.520452297],[.303184327,.23401591,.522516303],[.30208911,.238838555,.52449521],[.300947275,.243638109,.526391045],[.299761321,.248411187,.528204854],[.298533409,.253162399,.529940558],[.297264904,.257887398,.531597292],[.295957559,.262587449,.533178503],[.294613881,.267263788,.534687595],[.293235389,.271914152,.536124789],[.29182587,.276539894,.537493845],[.29038714,.281137685,.538796077],[.288919537,.285713038,.540035142],[.287426163,.290260619,.541210432],[.285909075,.294782589,.542327277],[.284368457,.299280222,.54338595],[.282808854,.30375224,.544389916],[.281231181,.308198925,.545340709],[.279638204,.312619061,.546240852],[.278029366,.317014946,.54709281],[.276408749,.321385415,.547898161],[.2747762,.325731625,.548659129],[.273133607,.330054743,.549376904],[.271483073,.334352558,.550054129],[.269825453,.338628329,.55069316],[.268162615,.3428799,.551295679],[.266495079,.347108488,.551861999],[.264824946,.351315001,.552395838],[.263152656,.355499532,.552898352],[.261479291,.359663188,.553370667],[.2598069,.363804861,.553815549],[.258135127,.367926736,.554233229],[.256465488,.372027779,.554624491],[.254796664,.376110092,.554991545],[.253131545,.380173687,.5553352],[.251468935,.38421961,.555657646],[.249809319,.388246886,.555958715],[.248154519,.392256574,.556239496],[.246502819,.396250722,.556502059],[.244855438,.400228368,.556746262],[.243211275,.404191591,.556972229],[.241572085,.40813939,.557181851],[.239935321,.412073822,.557375231],[.238302445,.415993928,.557553271],[.236672664,.419901774,.557716013],[.235044688,.423797366,.557863499],[.233418402,.42768078,.557996644],[.23179415,.43155403,.558115514],[.23017062,.435415152,.558221055],[.228545837,.439268241,.558311286],[.226921796,.443110292,.558388185],[.225295059,.446944385,.558450748],[.223665357,.450770477,.5585],[.222033173,.454587707,.558533891],[.220395682,.458399026,.558554442],[.218753476,.462202555,.558559625],[.217103794,.466001277,.55854943],[.2154464,.469793276,.55852386],[.213781237,.473579536,.558482909],[.212104356,.477363125,.558424526],[.210416546,.481140084,.558348751],[.208715672,.48491544,.558254507],[.207002655,.488686237,.558142856],[.205274058,.492454453,.558011716],[.203529732,.496219216,.557860134],[.201769075,.499981516,.557687063],[.199990512,.503743321,.557493446],[.198194207,.507501758,.557276358],[.196378932,.511260752,.557037681],[.19454391,.515016431,.556773514],[.192687798,.518772751,.556483695],[.190809699,.522527822,.556167356],[.188910106,.52628262,.555823406],[.186988225,.530037105,.555450744],[.185044047,.533791419,.555048516],[.183076504,.537546494,.554614502],[.181087511,.541301431,.554148901],[.17907907,.54505611,.553651486],[.177048511,.548811719,.553119441],[.174998106,.552566177,.55255165],[.172927152,.556323508,.551946906],[.170840345,.560079758,.551305519],[.168735186,.563836905,.550623112],[.166617897,.56759401,.549902026],[.164486938,.571352034,.549137847],[.162350105,.575110037,.54833296],[.160206983,.57886796,.547482915],[.158062641,.582625896,.54658912],[.15592085,.58638281,.545648332],[.153785246,.590140667,.544660266],[.151663046,.593897574,.543623383],[.149559345,.597654419,.542537144],[.147481636,.601409324,.541399051],[.145437381,.605164162,.540210518],[.14343467,.60891604,.538969112],[.141480867,.61266593,.537672481],[.139587165,.616415793,.536320242],[.137763667,.620161689,.534912064],[.136020919,.623906545,.533446178],[.13437266,.627646426,.531922315],[.132832383,.631384239,.530339651],[.131410838,.635118107,.528695928],[.130125622,.638846942,.526990734],[.128989086,.642572693,.52522357],[.128017628,.646291446,.523393293],[.127225586,.650007125,.521497893],[.126630843,.653714779,.519538336],[.126246801,.657418325,.517512535],[.126089944,.661112834,.515420512],[.126172637,.664801273,.513260659],[.126511086,.668481527,.511032406],[.127114669,.672153753,.508734767],[.127995817,.675817772,.506367566],[.129165005,.679470699,.503930954],[.130626887,.683115418,.501421577],[.132387924,.686749032,.49884169],[.134452914,.690371463,.49618857],[.136822787,.693983608,.493462472],[.13949652,.697582617,.490662686],[.142474978,.7011703,.487788732],[.145750228,.70474282,.484838975],[.149321849,.708302973,.481813842],[.153179377,.711847929,.478713792],[.157318564,.715378589,.475536944],[.161730716,.718893812,.472282406],[.166406002,.722391787,.468951725],[.171338542,.725874284,.465543101],[.17651572,.729337518,.462055133],[.181930053,.732785241,.458487921],[.187571031,.736211639,.454843239],[.193429649,.739619614,.451117964],[.199499186,.743008988,.447313047],[.205767887,.746376001,.443429285],[.212229375,.749723376,.439463504],[.218873428,.753047369,.435417594],[.22569701,.756349669,.431288292],[.232688469,.759628568,.427078537],[.239843791,.7628837,.422786019],[.247153668,.766113396,.418412723],[.254613428,.769318467,.413957329],[.262218889,.772498701,.409418458],[.269962666,.77565145,.404798189],[.277841418,.778778314,.400092862],[.285848026,.781875674,.395303604],[.29398231,.784946086,.39042969],[.302235095,.787985957,.385473325],[.310604419,.790996053,.380432913],[.319087196,.793977129,.375305722],[.327678425,.796925609,.370097109],[.336377071,.799844013,.36480084],[.34517577,.80272881,.359421265],[.354076535,.805582464,.353955096],[.363072889,.808400495,.348402578],[.37216392,.811184613,.342763768],[.381347905,.813934495,.337037614],[.390618224,.816648721,.331226329],[.399976821,.81932765,.325327258],[.409415973,.821969907,.319342572],[.418938096,.824574796,.313270474],[.428536113,.82714301,.307110897],[.438211485,.829672159,.300864482],[.447961789,.832162866,.294529459],[.457781391,.83461486,.288106667],[.467672971,.837028362,.281594598],[.477628958,.839401127,.274993962],[.487651997,.841734348,.268301762],[.497733674,.844025807,.261523769],[.507875022,.846277099,.254656114],[.518075249,.848488769,.247698899],[.528325832,.850658669,.240654148],[.538630828,.852786888,.233517501],[.548980458,.854874335,.226295687],[.559378838,.856921058,.218982461],[.569817428,.858926,.211583929],[.580294553,.860889673,.204097969],[.590811638,.862813564,.196522789],[.601358084,.864696671,.188865211],[.611937091,.866539951,.181121292],[.622540157,.868342445,.173298674],[.633168288,.870107082,.165394846],[.643812988,.87183295,.15741903],[.654472815,.873520492,.149372194],[.665146187,.875172136,.141258413],[.675825719,.87678702,.133091913],[.686511527,.878367982,.12487704],[.697194143,.879914204,.116633111],[.707874818,.881428483,.108373929],[.718543932,.882912056,.100128072],[.729204,.884365666,.091925366],[.739843331,.885790592,.083809287],[.750462567,.887190215,.075839053],[.761059494,.888563872,.068090072],[.771623442,.889914889,.060669955],[.782157864,.891244958,.053711966],[.792653349,.892555409,.047401118],[.803110167,.893848926,.04195436],[.81352,.895126859,.03764563],[.823881496,.896391553,.034852646],[.834195319,.897645338,.033642701],[.844452225,.898889585,.034045498],[.854655562,.900125934,.036085859],[.864796013,.901357784,.039789107],[.874876944,.902585761,.044954025],[.884885947,.903815287,.051230115],[.894826973,.905044656,.058381191],[.90470253,.906278205,.066205641],[.91450577,.907515306,.074534887],[.924239732,.908759607,.083251002],[.933898589,.910011479,.092251508],[.943486439,.911272564,.101473717],[.952999453,.912545233,.110858769]],inferno:[[.002810891,239715e-9,.013984976],[.004019847,978214e-9,.018722507],[.005535928,.00187858,.024433316],[.007352275,.002928594,.031151042],[.009463158,.004122023,.038856908],[.011875164,.00544392,.047160074],[.014598821,.006882989,.05549261],[.017636359,.008432151,.063833581],[.021017968,.010065827,.072260641],[.024743935,.011784159,.080708378],[.028837804,.013566889,.089219815],[.033326247,.015396259,.097809251],[.038216424,.017268324,.106440143],[.043430971,.019154971,.115162139],[.048693764,.021040888,.123967748],[.054003412,.022919329,.132833018],[.05937446,.024767653,.141775321],[.064826084,.026549139,.150830309],[.070349827,.028263587,.159955322],[.075950411,.029888422,.169148722],[.081637827,.031404016,.17841319],[.087425459,.032773279,.187768133],[.093315577,.033979154,.197195807],[.099307652,.035007297,.206679544],[.105402262,.035836467,.216206467],[.11160571,.036444525,.225770396],[.117916762,.036813662,.235353395],[.124336908,.036927557,.244940257],[.130861794,.036773825,.254505012],[.137489231,.036346007,.264028401],[.144209431,.035642023,.273476467],[.151015433,.034667062,.28281847],[.157897349,.03343447,.292023612],[.164837843,.031964803,.301050012],[.171827177,.030285889,.309867094],[.178846632,.028428459,.318436221],[.185883931,.026431189,.326727546],[.192913861,.024349971,.334701716],[.199922206,.022233669,.342332673],[.206896794,.020130048,.349604188],[.213821188,.018085948,.356495421],[.220686239,.01614765,.36300284],[.227481223,.014355535,.369119105],[.234203612,.012742013,.374850293],[.240846275,.011335284,.380200563],[.247409605,.010157358,.385183383],[.25389244,.00922676,.389814002],[.260296425,.008548931,.394106082],[.26662827,.008128897,.398079916],[.272888184,.007967771,.401752554],[.279082984,.008062521,.405141928],[.285215144,.008411444,.408265426],[.291290587,.009006962,.411140969],[.297313415,.009846182,.41378732],[.303287625,.010914426,.416217169],[.309220747,.012204296,.418446847],[.31511472,.013704677,.420488274],[.320976396,.015407335,.422354544],[.32680655,.017302461,.42405678],[.33261022,.019380479,.425606502],[.33839282,.021633451,.427012121],[.344153787,.024052574,.428282941],[.349898892,.026629309,.429426665],[.35562785,.029355256,.43044874],[.361346591,.032224413,.431358727],[.367053482,.035230654,.432159193],[.372752567,.038365761,.4328564],[.3784468,.041595697,.433455535],[.384135533,.044788621,.433960296],[.389822923,.047944779,.434373977],[.395506485,.051063276,.434700381],[.401189511,.054146112,.434943693],[.4068728,.057192222,.435104814],[.412556166,.060199931,.435185819],[.418243957,.063171283,.435188731],[.423933314,.06610722,.435114544],[.429627404,.069008639,.434966249],[.435324174,.071876171,.434743925],[.441027491,.074713043,.43444847],[.446733669,.077518064,.434082054],[.452446383,.080294305,.433643485],[.458162952,.083041445,.433136016],[.463885774,.085763765,.432560539],[.469615152,.088460854,.431914896],[.475348183,.09113465,.431200416],[.481089526,.093787482,.430415748],[.486835457,.096418645,.429563306],[.49258791,.099031404,.428642651],[.498344739,.101627493,.427653271],[.504107463,.104208064,.426595937],[.50987656,.106775461,.425470369],[.515649029,.109331131,.424277141],[.521426769,.111875723,.423014653],[.527208676,.114410574,.421683562],[.532994806,.116939588,.42028318],[.538784144,.119462794,.418815247],[.544575216,.121981175,.417278404],[.550371412,.124498872,.415673254],[.556167707,.127014924,.41399861],[.561966129,.129532943,.412254628],[.567764629,.132053983,.410442205],[.573565191,.134579443,.408560423],[.579363842,.137111442,.40661025],[.585160178,.139651746,.404592207],[.590957491,.142202192,.40250478],[.596749843,.144763781,.400348019],[.602540203,.147339963,.398121837],[.608324672,.149931559,.395828373],[.614106177,.152539886,.393466468],[.619878803,.155167953,.39103732],[.62564502,.157816339,.388541343],[.631405276,.16048786,.385977888],[.637153672,.163184363,.383348244],[.642895026,.165908225,.380651089],[.648622504,.168659106,.377887791],[.654340024,.171441466,.375058945],[.660042722,.174255929,.372166993],[.665730985,.17710425,.369210216],[.671404338,.179990219,.366189835],[.677058916,.182912273,.363108386],[.682697502,.185876068,.359964293],[.688315275,.188880002,.356760156],[.693913094,.19192974,.353495316],[.699488019,.195022636,.350170452],[.705038579,.198163531,.346787702],[.710566106,.20135422,.343346184],[.716066836,.204595038,.339850629],[.721539555,.207888681,.336298229],[.726982448,.21123646,.332693775],[.73239625,.214641094,.329035403],[.737776233,.2181018,.325326951],[.743124048,.221622403,.32156649],[.748435031,.225202042,.317758905],[.75370943,.228844711,.313903188],[.75894657,.232551318,.309999301],[.764142757,.236320958,.306051185],[.769298574,.240158638,.302057753],[.774410361,.24406134,.298021999],[.77947869,.248033102,.293943781],[.784498961,.252072896,.289827098],[.789472323,.256183813,.28567083],[.794397096,.260364835,.281476823],[.799269603,.264617985,.277247087],[.804091318,.26894337,.27298138],[.808857686,.273339856,.26868175],[.813569116,.277811732,.264349842],[.818223052,.282355751,.259985752],[.822818703,.286973061,.255592213],[.82735609,.291664924,.251166929],[.831830811,.296431042,.246713936],[.836244108,.301270823,.242231798],[.840591599,.306183914,.237722542],[.844875422,.311171845,.23318565],[.849092282,.316232129,.228623159],[.853241223,.321365084,.224035636],[.857322167,.326571094,.21942059],[.861331902,.331848603,.21478101],[.865271396,.337198333,.210114175],[.869138558,.342616591,.205424062],[.872933212,.34810625,.200705817],[.876653352,.353663534,.195963343],[.88029782,.359288934,.191192908],[.883868435,.364982926,.18639468],[.887360283,.37074069,.181568458],[.890776984,.376566224,.176712017],[.894114775,.382452576,.171827069],[.897374185,.388403856,.166908161],[.900554463,.39441505,.161956811],[.903654355,.400486745,.156970616],[.90667454,.406618534,.151946006],[.909613336,.41280737,.146884076],[.91247216,.419054438,.141779605],[.915247473,.425354607,.136631311],[.917941576,.431711138,.13143639],[.920553003,.438118822,.126193019],[.92308235,.444578324,.12089804],[.925528158,.451090351,.115545644],[.927890089,.457649617,.11013577],[.930168274,.464258499,.104662026],[.932363432,.470912662,.099122862],[.934473651,.477613532,.093511016],[.936498751,.484357723,.087826678],[.93844068,.491146702,.082060883],[.940296388,.497977037,.076213354],[.942067334,.504847466,.070277474],[.943752836,.511760795,.06424713],[.945353009,.518710501,.058120676],[.946867593,.525700159,.051891455],[.948295769,.532725216,.04556084],[.949638198,.53978828,.039112476],[.950894169,.546884747,.032903658],[.952063015,.55401443,.027232246],[.953145915,.561180175,.0221163],[.954141311,.568376334,.017577226],[.955049698,.575605576,.01363671],[.955869597,.582863221,.010318691],[.956603366,.590152978,.007647565],[.957247693,.597469118,.005653645],[.957804685,.604814517,.004365192],[.958272553,.612188026,.003815359],[.958651994,.619586903,.004038404],[.958943236,.627013907,.005072597],[.959145208,.63446323,.00695773],[.95925702,.641938676,.009736864],[.959279647,.649436413,.013456641],[.959213225,.656956325,.018166728],[.959055721,.664501335,.023921376],[.958809389,.672064551,.030777952],[.958472175,.679649817,.038798466],[.958045344,.687253245,.047545867],[.957527869,.694876673,.05639001],[.956920137,.702516187,.065327227],[.956222221,.710172696,.074362977],[.955435128,.717847108,.083500802],[.954558502,.725534474,.092742519],[.953590125,.733238676,.102098349],[.952533796,.740954728,.111570461],[.95138945,.748682482,.121171091],[.950157939,.756419958,.130904998],[.948841532,.764165035,.140781309],[.947441335,.771919616,.150814361],[.945959663,.779676661,.161005763],[.944398407,.787439028,.171373044],[.942762103,.795200653,.181921587],[.941049699,.802964391,.192669999],[.939264076,.810723142,.203627758],[.937415841,.818475746,.214804757],[.935510862,.826217989,.226217167],[.933559455,.833942752,.237872127],[.93156307,.8416528,.249795364],[.929529596,.849338965,.262001658],[.927483114,.856994896,.274501251],[.925440807,.864610442,.287299789],[.923403333,.872186154,.300442835],[.921409474,.879705858,.31392195],[.919490918,.887156115,.327744186],[.917656842,.894536376,.341960845],[.915969564,.901820516,.35653516],[.914460404,.908999767,.37149754],[.913185926,.916052067,.386828249],[.912202301,.922961588,.402519028],[.911571271,.929705491,.418535415],[.911358961,.936266305,.434834633],[.911626842,.942626533,.451364946],[.912435288,.948769029,.468038546],[.913828005,.954687153,.484787691],[.915840127,.960372411,.501502204],[.91848121,.965832199,.51812067],[.921749977,.971070576,.534539304],[.925624725,.976102635,.550702793],[.930072492,.980946133,.566595441],[.9350529,.985618856,.58210261],[.940520965,.990140356,.597269626],[.946429162,.994525842,.612080146],[.952736995,.998796066,.626535043],[.959399507,1.002963285,.640626478]],cividis:[[0,.1262,.3015],[0,.1292,.3077],[0,.1321,.3142],[0,.135,.3205],[0,.1379,.3269],[0,.1408,.3334],[0,.1437,.34],[0,.1465,.3467],[0,.1492,.3537],[0,.1519,.3606],[0,.1546,.3676],[0,.1574,.3746],[0,.1601,.3817],[0,.1629,.3888],[0,.1657,.396],[0,.1685,.4031],[0,.1714,.4102],[0,.1743,.4172],[0,.1773,.4241],[0,.1798,.4307],[0,.1817,.4347],[0,.1834,.4363],[0,.1852,.4368],[0,.1872,.4368],[0,.1901,.4365],[0,.193,.4361],[0,.1958,.4356],[0,.1987,.4349],[0,.2015,.4343],[0,.2044,.4336],[0,.2073,.4329],[.0055,.2101,.4322],[.0236,.213,.4314],[.0416,.2158,.4308],[.0576,.2187,.4301],[.071,.2215,.4293],[.0827,.2244,.4287],[.0932,.2272,.428],[.103,.23,.4274],[.112,.2329,.4268],[.1204,.2357,.4262],[.1283,.2385,.4256],[.1359,.2414,.4251],[.1431,.2442,.4245],[.15,.247,.4241],[.1566,.2498,.4236],[.163,.2526,.4232],[.1692,.2555,.4228],[.1752,.2583,.4224],[.1811,.2611,.422],[.1868,.2639,.4217],[.1923,.2667,.4214],[.1977,.2695,.4212],[.203,.2723,.4209],[.2082,.2751,.4207],[.2133,.278,.4205],[.2183,.2808,.4204],[.2232,.2836,.4203],[.2281,.2864,.4202],[.2328,.2892,.4201],[.2375,.292,.42],[.2421,.2948,.42],[.2466,.2976,.42],[.2511,.3004,.4201],[.2556,.3032,.4201],[.2599,.306,.4202],[.2643,.3088,.4203],[.2686,.3116,.4205],[.2728,.3144,.4206],[.277,.3172,.4208],[.2811,.32,.421],[.2853,.3228,.4212],[.2894,.3256,.4215],[.2934,.3284,.4218],[.2974,.3312,.4221],[.3014,.334,.4224],[.3054,.3368,.4227],[.3093,.3396,.4231],[.3132,.3424,.4236],[.317,.3453,.424],[.3209,.3481,.4244],[.3247,.3509,.4249],[.3285,.3537,.4254],[.3323,.3565,.4259],[.3361,.3593,.4264],[.3398,.3622,.427],[.3435,.365,.4276],[.3472,.3678,.4282],[.3509,.3706,.4288],[.3546,.3734,.4294],[.3582,.3763,.4302],[.3619,.3791,.4308],[.3655,.3819,.4316],[.3691,.3848,.4322],[.3727,.3876,.4331],[.3763,.3904,.4338],[.3798,.3933,.4346],[.3834,.3961,.4355],[.3869,.399,.4364],[.3905,.4018,.4372],[.394,.4047,.4381],[.3975,.4075,.439],[.401,.4104,.44],[.4045,.4132,.4409],[.408,.4161,.4419],[.4114,.4189,.443],[.4149,.4218,.444],[.4183,.4247,.445],[.4218,.4275,.4462],[.4252,.4304,.4473],[.4286,.4333,.4485],[.432,.4362,.4496],[.4354,.439,.4508],[.4388,.4419,.4521],[.4422,.4448,.4534],[.4456,.4477,.4547],[.4489,.4506,.4561],[.4523,.4535,.4575],[.4556,.4564,.4589],[.4589,.4593,.4604],[.4622,.4622,.462],[.4656,.4651,.4635],[.4689,.468,.465],[.4722,.4709,.4665],[.4756,.4738,.4679],[.479,.4767,.4691],[.4825,.4797,.4701],[.4861,.4826,.4707],[.4897,.4856,.4714],[.4934,.4886,.4719],[.4971,.4915,.4723],[.5008,.4945,.4727],[.5045,.4975,.473],[.5083,.5005,.4732],[.5121,.5035,.4734],[.5158,.5065,.4736],[.5196,.5095,.4737],[.5234,.5125,.4738],[.5272,.5155,.4739],[.531,.5186,.4739],[.5349,.5216,.4738],[.5387,.5246,.4739],[.5425,.5277,.4738],[.5464,.5307,.4736],[.5502,.5338,.4735],[.5541,.5368,.4733],[.5579,.5399,.4732],[.5618,.543,.4729],[.5657,.5461,.4727],[.5696,.5491,.4723],[.5735,.5522,.472],[.5774,.5553,.4717],[.5813,.5584,.4714],[.5852,.5615,.4709],[.5892,.5646,.4705],[.5931,.5678,.4701],[.597,.5709,.4696],[.601,.574,.4691],[.605,.5772,.4685],[.6089,.5803,.468],[.6129,.5835,.4673],[.6168,.5866,.4668],[.6208,.5898,.4662],[.6248,.5929,.4655],[.6288,.5961,.4649],[.6328,.5993,.4641],[.6368,.6025,.4632],[.6408,.6057,.4625],[.6449,.6089,.4617],[.6489,.6121,.4609],[.6529,.6153,.46],[.657,.6185,.4591],[.661,.6217,.4583],[.6651,.625,.4573],[.6691,.6282,.4562],[.6732,.6315,.4553],[.6773,.6347,.4543],[.6813,.638,.4532],[.6854,.6412,.4521],[.6895,.6445,.4511],[.6936,.6478,.4499],[.6977,.6511,.4487],[.7018,.6544,.4475],[.706,.6577,.4463],[.7101,.661,.445],[.7142,.6643,.4437],[.7184,.6676,.4424],[.7225,.671,.4409],[.7267,.6743,.4396],[.7308,.6776,.4382],[.735,.681,.4368],[.7392,.6844,.4352],[.7434,.6877,.4338],[.7476,.6911,.4322],[.7518,.6945,.4307],[.756,.6979,.429],[.7602,.7013,.4273],[.7644,.7047,.4258],[.7686,.7081,.4241],[.7729,.7115,.4223],[.7771,.715,.4205],[.7814,.7184,.4188],[.7856,.7218,.4168],[.7899,.7253,.415],[.7942,.7288,.4129],[.7985,.7322,.4111],[.8027,.7357,.409],[.807,.7392,.407],[.8114,.7427,.4049],[.8157,.7462,.4028],[.82,.7497,.4007],[.8243,.7532,.3984],[.8287,.7568,.3961],[.833,.7603,.3938],[.8374,.7639,.3915],[.8417,.7674,.3892],[.8461,.771,.3869],[.8505,.7745,.3843],[.8548,.7781,.3818],[.8592,.7817,.3793],[.8636,.7853,.3766],[.8681,.7889,.3739],[.8725,.7926,.3712],[.8769,.7962,.3684],[.8813,.7998,.3657],[.8858,.8035,.3627],[.8902,.8071,.3599],[.8947,.8108,.3569],[.8992,.8145,.3538],[.9037,.8182,.3507],[.9082,.8219,.3474],[.9127,.8256,.3442],[.9172,.8293,.3409],[.9217,.833,.3374],[.9262,.8367,.334],[.9308,.8405,.3306],[.9353,.8442,.3268],[.9399,.848,.3232],[.9444,.8518,.3195],[.949,.8556,.3155],[.9536,.8593,.3116],[.9582,.8632,.3076],[.9628,.867,.3034],[.9674,.8708,.299],[.9721,.8746,.2947],[.9767,.8785,.2901],[.9814,.8823,.2856],[.986,.8862,.2807],[.9907,.8901,.2759],[.9954,.894,.2708],[1,.8979,.2655],[1,.9018,.26],[1,.9057,.2593],[1,.9094,.2634],[1,.9131,.268],[1,.9169,.2731]],green:[[.9686274509803922,.9882352941176471,.9607843137254902],[.9647058823529412,.9882352941176471,.9568627450980393],[.9647058823529412,.9882352941176471,.9568627450980393],[.9607843137254902,.984313725490196,.9529411764705882],[.9607843137254902,.984313725490196,.9490196078431372],[.9568627450980393,.984313725490196,.9490196078431372],[.9568627450980393,.984313725490196,.9450980392156862],[.9529411764705882,.9803921568627451,.9411764705882353],[.9490196078431372,.9803921568627451,.9411764705882353],[.9490196078431372,.9803921568627451,.9372549019607843],[.9450980392156862,.9803921568627451,.9333333333333333],[.9450980392156862,.9803921568627451,.9333333333333333],[.9411764705882353,.9764705882352941,.9294117647058824],[.9411764705882353,.9764705882352941,.9254901960784314],[.9372549019607843,.9764705882352941,.9254901960784314],[.9333333333333333,.9764705882352941,.9215686274509803],[.9333333333333333,.9725490196078431,.9176470588235294],[.9294117647058824,.9725490196078431,.9176470588235294],[.9254901960784314,.9725490196078431,.9137254901960784],[.9254901960784314,.9725490196078431,.9098039215686274],[.9215686274509803,.9686274509803922,.9058823529411765],[.9215686274509803,.9686274509803922,.9058823529411765],[.9176470588235294,.9686274509803922,.9019607843137255],[.9137254901960784,.9686274509803922,.8980392156862745],[.9137254901960784,.9647058823529412,.8941176470588236],[.9098039215686274,.9647058823529412,.8941176470588236],[.9058823529411765,.9647058823529412,.8901960784313725],[.9058823529411765,.9647058823529412,.8862745098039215],[.9019607843137255,.9607843137254902,.8823529411764706],[.8980392156862745,.9607843137254902,.8823529411764706],[.8941176470588236,.9607843137254902,.8784313725490196],[.8941176470588236,.9568627450980393,.8745098039215686],[.8901960784313725,.9568627450980393,.8705882352941177],[.8862745098039215,.9568627450980393,.8666666666666667],[.8823529411764706,.9568627450980393,.8627450980392157],[.8823529411764706,.9529411764705882,.8627450980392157],[.8784313725490196,.9529411764705882,.8588235294117647],[.8745098039215686,.9529411764705882,.8549019607843137],[.8705882352941177,.9490196078431372,.8509803921568627],[.8666666666666667,.9490196078431372,.8470588235294118],[.8666666666666667,.9490196078431372,.8431372549019608],[.8627450980392157,.9450980392156862,.8392156862745098],[.8588235294117647,.9450980392156862,.8352941176470589],[.8549019607843137,.9450980392156862,.8313725490196079],[.8509803921568627,.9411764705882353,.8274509803921568],[.8470588235294118,.9411764705882353,.8235294117647058],[.8431372549019608,.9372549019607843,.8196078431372549],[.8392156862745098,.9372549019607843,.8156862745098039],[.8352941176470589,.9372549019607843,.8117647058823529],[.8313725490196079,.9333333333333333,.807843137254902],[.8313725490196079,.9333333333333333,.807843137254902],[.8274509803921568,.9333333333333333,.803921568627451],[.8235294117647058,.9294117647058824,.796078431372549],[.8196078431372549,.9294117647058824,.792156862745098],[.8156862745098039,.9254901960784314,.788235294117647],[.8117647058823529,.9254901960784314,.7843137254901961],[.807843137254902,.9254901960784314,.7803921568627451],[.803921568627451,.9215686274509803,.7764705882352941],[.8,.9215686274509803,.7725490196078432],[.796078431372549,.9176470588235294,.7686274509803922],[.792156862745098,.9176470588235294,.7647058823529411],[.788235294117647,.9176470588235294,.7607843137254902],[.7843137254901961,.9137254901960784,.7568627450980392],[.7764705882352941,.9137254901960784,.7529411764705882],[.7725490196078432,.9098039215686274,.7490196078431373],[.7686274509803922,.9098039215686274,.7450980392156863],[.7647058823529411,.9058823529411765,.7411764705882353],[.7607843137254902,.9058823529411765,.7372549019607844],[.7568627450980392,.9019607843137255,.7333333333333333],[.7529411764705882,.9019607843137255,.7254901960784313],[.7490196078431373,.9019607843137255,.7215686274509804],[.7450980392156863,.8980392156862745,.7176470588235294],[.7411764705882353,.8980392156862745,.7137254901960784],[.7333333333333333,.8941176470588236,.7098039215686275],[.7294117647058823,.8941176470588236,.7058823529411765],[.7254901960784313,.8901960784313725,.7019607843137254],[.7215686274509804,.8901960784313725,.6980392156862745],[.7176470588235294,.8862745098039215,.6901960784313725],[.7137254901960784,.8862745098039215,.6862745098039216],[.7098039215686275,.8823529411764706,.6823529411764706],[.7019607843137254,.8823529411764706,.6784313725490196],[.6980392156862745,.8784313725490196,.6745098039215687],[.6941176470588235,.8784313725490196,.6705882352941176],[.6901960784313725,.8745098039215686,.6666666666666666],[.6823529411764706,.8745098039215686,.6588235294117647],[.6784313725490196,.8705882352941177,.6549019607843137],[.6745098039215687,.8705882352941177,.6509803921568628],[.6705882352941176,.8666666666666667,.6470588235294118],[.6666666666666666,.8627450980392157,.6431372549019608],[.6588235294117647,.8627450980392157,.6392156862745098],[.6549019607843137,.8588235294117647,.6352941176470588],[.6509803921568628,.8588235294117647,.6274509803921569],[.6470588235294118,.8549019607843137,.6235294117647059],[.6392156862745098,.8549019607843137,.6196078431372549],[.6352941176470588,.8509803921568627,.615686274509804],[.6313725490196078,.8509803921568627,.611764705882353],[.6235294117647059,.8470588235294118,.6078431372549019],[.6196078431372549,.8431372549019608,.6],[.615686274509804,.8431372549019608,.596078431372549],[.6078431372549019,.8392156862745098,.592156862745098],[.6039215686274509,.8392156862745098,.5882352941176471],[.6,.8352941176470589,.5843137254901961],[.592156862745098,.8313725490196079,.5803921568627451],[.5882352941176471,.8313725490196079,.5725490196078431],[.5843137254901961,.8274509803921568,.5686274509803921],[.5764705882352941,.8274509803921568,.5647058823529412],[.5725490196078431,.8235294117647058,.5607843137254902],[.5686274509803921,.8196078431372549,.5568627450980392],[.5607843137254902,.8196078431372549,.5529411764705883],[.5568627450980392,.8156862745098039,.5490196078431373],[.5490196078431373,.8117647058823529,.5411764705882353],[.5450980392156862,.8117647058823529,.5372549019607843],[.5411764705882353,.807843137254902,.5333333333333333],[.5333333333333333,.803921568627451,.5294117647058824],[.5294117647058824,.803921568627451,.5254901960784314],[.5215686274509804,.8,.5215686274509804],[.5176470588235295,.796078431372549,.5176470588235295],[.5098039215686274,.796078431372549,.5137254901960784],[.5058823529411764,.792156862745098,.5098039215686274],[.5019607843137255,.788235294117647,.5058823529411764],[.49411764705882355,.788235294117647,.5019607843137255],[.49019607843137253,.7843137254901961,.4980392156862745],[.4823529411764706,.7803921568627451,.49411764705882355],[.47843137254901963,.7803921568627451,.48627450980392156],[.47058823529411764,.7764705882352941,.4823529411764706],[.4666666666666667,.7725490196078432,.47843137254901963],[.4588235294117647,.7686274509803922,.4745098039215686],[.4549019607843137,.7686274509803922,.47058823529411764],[.4470588235294118,.7647058823529411,.47058823529411764],[.44313725490196076,.7607843137254902,.4666666666666667],[.43529411764705883,.7607843137254902,.4627450980392157],[.43137254901960786,.7568627450980392,.4588235294117647],[.4235294117647059,.7529411764705882,.4549019607843137],[.4196078431372549,.7490196078431373,.45098039215686275],[.4117647058823529,.7490196078431373,.4470588235294118],[.40784313725490196,.7450980392156863,.44313725490196076],[.4,.7411764705882353,.4392156862745098],[.396078431372549,.7372549019607844,.43529411764705883],[.38823529411764707,.7372549019607844,.43137254901960786],[.3843137254901961,.7333333333333333,.43137254901960786],[.3764705882352941,.7294117647058823,.42745098039215684],[.3686274509803922,.7254901960784313,.4235294117647059],[.36470588235294116,.7215686274509804,.4196078431372549],[.3568627450980392,.7215686274509804,.41568627450980394],[.35294117647058826,.7176470588235294,.4117647058823529],[.34509803921568627,.7137254901960784,.40784313725490196],[.3411764705882353,.7098039215686275,.40784313725490196],[.33725490196078434,.7058823529411765,.403921568627451],[.32941176470588235,.7058823529411765,.4],[.3254901960784314,.7019607843137254,.396078431372549],[.3176470588235294,.6980392156862745,.39215686274509803],[.3137254901960784,.6941176470588235,.39215686274509803],[.3058823529411765,.6901960784313725,.38823529411764707],[.30196078431372547,.6862745098039216,.3843137254901961],[.2980392156862745,.6862745098039216,.3803921568627451],[.2901960784313726,.6823529411764706,.3803921568627451],[.28627450980392155,.6784313725490196,.3764705882352941],[.2823529411764706,.6745098039215687,.37254901960784315],[.27450980392156865,.6705882352941176,.3686274509803922],[.27058823529411763,.6666666666666666,.36470588235294116],[.26666666666666666,.6627450980392157,.36470588235294116],[.25882352941176473,.6588235294117647,.3607843137254902],[.2549019607843137,.6549019607843137,.3568627450980392],[.25098039215686274,.6549019607843137,.35294117647058826],[.24705882352941178,.6509803921568628,.35294117647058826],[.24313725490196078,.6470588235294118,.34901960784313724],[.23529411764705882,.6431372549019608,.34509803921568627],[.23137254901960785,.6392156862745098,.3411764705882353],[.22745098039215686,.6352941176470588,.3411764705882353],[.2235294117647059,.6313725490196078,.33725490196078434],[.2196078431372549,.6274509803921569,.3333333333333333],[.21568627450980393,.6235294117647059,.32941176470588235],[.21176470588235294,.6196078431372549,.32941176470588235],[.20784313725490197,.615686274509804,.3254901960784314],[.20392156862745098,.611764705882353,.3215686274509804],[.2,.6078431372549019,.3176470588235294],[.19607843137254902,.6039215686274509,.3137254901960784],[.19215686274509805,.6,.3137254901960784],[.18823529411764706,.596078431372549,.30980392156862746],[.1843137254901961,.592156862745098,.3058823529411765],[.1803921568627451,.5882352941176471,.30196078431372547],[.17647058823529413,.5843137254901961,.30196078431372547],[.16862745098039217,.5803921568627451,.2980392156862745],[.16470588235294117,.5764705882352941,.29411764705882354],[.1607843137254902,.5725490196078431,.2901960784313726],[.1568627450980392,.5686274509803921,.2901960784313726],[.15294117647058825,.5647058823529412,.28627450980392155],[.14901960784313725,.5607843137254902,.2823529411764706],[.1450980392156863,.5607843137254902,.2784313725490196],[.1411764705882353,.5568627450980392,.2784313725490196],[.13725490196078433,.5529411764705883,.27450980392156865],[.13333333333333333,.5490196078431373,.27058823529411763],[.12941176470588237,.5450980392156862,.26666666666666666],[.12549019607843137,.5411764705882353,.2627450980392157],[.12156862745098039,.5372549019607843,.2627450980392157],[.11764705882352941,.5333333333333333,.25882352941176473],[.11372549019607843,.5294117647058824,.2549019607843137],[.10980392156862745,.5254901960784314,.25098039215686274],[.10588235294117647,.5215686274509804,.25098039215686274],[.10196078431372549,.5176470588235295,.24705882352941178],[.09803921568627451,.5137254901960784,.24313725490196078],[.09411764705882353,.5098039215686274,.23921568627450981],[.09019607843137255,.5058823529411764,.23921568627450981],[.08627450980392157,.5019607843137255,.23529411764705882],[.08235294117647059,.4980392156862745,.23137254901960785],[.0784313725490196,.49411764705882355,.22745098039215686],[.07450980392156863,.49019607843137253,.22745098039215686],[.07058823529411765,.48627450980392156,.2235294117647059],[.06666666666666667,.4823529411764706,.2196078431372549],[.06274509803921569,.47843137254901963,.21568627450980393],[.06274509803921569,.4745098039215686,.21568627450980393],[.058823529411764705,.47058823529411764,.21176470588235294],[.054901960784313725,.4666666666666667,.20784313725490197],[.050980392156862744,.4627450980392157,.20392156862745098],[.047058823529411764,.4588235294117647,.20392156862745098],[.043137254901960784,.4549019607843137,.2],[.043137254901960784,.45098039215686275,.19607843137254902],[.0392156862745098,.4470588235294118,.19607843137254902],[.03529411764705882,.44313725490196076,.19215686274509805],[.03137254901960784,.4392156862745098,.18823529411764706],[.03137254901960784,.43529411764705883,.1843137254901961],[.027450980392156862,.43137254901960786,.1843137254901961],[.023529411764705882,.4235294117647059,.1803921568627451],[.023529411764705882,.4196078431372549,.17647058823529413],[.0196078431372549,.41568627450980394,.17647058823529413],[.0196078431372549,.4117647058823529,.17254901960784313],[.01568627450980392,.40784313725490196,.16862745098039217],[.01568627450980392,.403921568627451,.16862745098039217],[.01568627450980392,.4,.16470588235294117],[.011764705882352941,.39215686274509803,.16470588235294117],[.011764705882352941,.38823529411764707,.1607843137254902],[.00784313725490196,.3843137254901961,.1568627450980392],[.00784313725490196,.3803921568627451,.1568627450980392],[.00784313725490196,.3764705882352941,.15294117647058825],[.00784313725490196,.3686274509803922,.15294117647058825],[.00392156862745098,.36470588235294116,.14901960784313725],[.00392156862745098,.3607843137254902,.1450980392156863],[.00392156862745098,.3568627450980392,.1450980392156863],[.00392156862745098,.35294117647058826,.1411764705882353],[.00392156862745098,.34509803921568627,.1411764705882353],[.00392156862745098,.3411764705882353,.13725490196078433],[0,.33725490196078434,.13725490196078433],[0,.3333333333333333,.13333333333333333],[0,.3254901960784314,.12941176470588237],[0,.3215686274509804,.12941176470588237],[0,.3176470588235294,.12549019607843137],[0,.3137254901960784,.12549019607843137],[0,.3058823529411765,.12156862745098039],[0,.30196078431372547,.12156862745098039],[0,.2980392156862745,.11764705882352941],[0,.2901960784313726,.11764705882352941],[0,.28627450980392155,.11372549019607843],[0,.2823529411764706,.11372549019607843],[0,.2784313725490196,.10980392156862745],[0,.27058823529411763,.10980392156862745],[0,.26666666666666666,.10588235294117647]],orange:[[1,.9607843137254902,.9215686274509803],[1,.9607843137254902,.9176470588235294],[1,.9568627450980393,.9137254901960784],[1,.9568627450980393,.9098039215686274],[1,.9529411764705882,.9058823529411765],[1,.9529411764705882,.9019607843137255],[1,.9490196078431372,.9019607843137255],[1,.9490196078431372,.8980392156862745],[1,.9450980392156862,.8941176470588236],[1,.9450980392156862,.8901960784313725],[1,.9411764705882353,.8862745098039215],[1,.9411764705882353,.8823529411764706],[1,.9372549019607843,.8784313725490196],[1,.9372549019607843,.8745098039215686],[1,.9333333333333333,.8705882352941177],[1,.9333333333333333,.8666666666666667],[.996078431372549,.9294117647058824,.8627450980392157],[.996078431372549,.9294117647058824,.8588235294117647],[.996078431372549,.9254901960784314,.8549019607843137],[.996078431372549,.9254901960784314,.8509803921568627],[.996078431372549,.9215686274509803,.8470588235294118],[.996078431372549,.9215686274509803,.8431372549019608],[.996078431372549,.9176470588235294,.8392156862745098],[.996078431372549,.9176470588235294,.8352941176470589],[.996078431372549,.9137254901960784,.8313725490196079],[.996078431372549,.9137254901960784,.8274509803921568],[.996078431372549,.9098039215686274,.8235294117647058],[.996078431372549,.9098039215686274,.8196078431372549],[.996078431372549,.9058823529411765,.8156862745098039],[.996078431372549,.9019607843137255,.8117647058823529],[.996078431372549,.9019607843137255,.807843137254902],[.996078431372549,.8980392156862745,.8],[.996078431372549,.8980392156862745,.796078431372549],[.996078431372549,.8941176470588236,.792156862745098],[.996078431372549,.8941176470588236,.788235294117647],[.996078431372549,.8901960784313725,.7843137254901961],[.996078431372549,.8862745098039215,.7803921568627451],[.996078431372549,.8862745098039215,.7725490196078432],[.996078431372549,.8823529411764706,.7686274509803922],[.996078431372549,.8823529411764706,.7647058823529411],[.996078431372549,.8784313725490196,.7607843137254902],[.996078431372549,.8745098039215686,.7529411764705882],[.996078431372549,.8745098039215686,.7490196078431373],[.996078431372549,.8705882352941177,.7450980392156863],[.996078431372549,.8666666666666667,.7411764705882353],[.996078431372549,.8666666666666667,.7333333333333333],[.996078431372549,.8627450980392157,.7294117647058823],[.996078431372549,.8588235294117647,.7254901960784313],[.996078431372549,.8549019607843137,.7176470588235294],[.9921568627450981,.8549019607843137,.7137254901960784],[.9921568627450981,.8509803921568627,.7058823529411765],[.9921568627450981,.8470588235294118,.7019607843137254],[.9921568627450981,.8470588235294118,.6980392156862745],[.9921568627450981,.8431372549019608,.6901960784313725],[.9921568627450981,.8392156862745098,.6862745098039216],[.9921568627450981,.8352941176470589,.6784313725490196],[.9921568627450981,.8313725490196079,.6745098039215687],[.9921568627450981,.8313725490196079,.6666666666666666],[.9921568627450981,.8274509803921568,.6627450980392157],[.9921568627450981,.8235294117647058,.6549019607843137],[.9921568627450981,.8196078431372549,.6509803921568628],[.9921568627450981,.8156862745098039,.6431372549019608],[.9921568627450981,.8156862745098039,.6392156862745098],[.9921568627450981,.8117647058823529,.6313725490196078],[.9921568627450981,.807843137254902,.6274509803921569],[.9921568627450981,.803921568627451,.6196078431372549],[.9921568627450981,.8,.615686274509804],[.9921568627450981,.796078431372549,.6078431372549019],[.9921568627450981,.792156862745098,.6],[.9921568627450981,.788235294117647,.596078431372549],[.9921568627450981,.7843137254901961,.5882352941176471],[.9921568627450981,.7803921568627451,.5843137254901961],[.9921568627450981,.7764705882352941,.5764705882352941],[.9921568627450981,.7725490196078432,.5686274509803921],[.9921568627450981,.7686274509803922,.5647058823529412],[.9921568627450981,.7647058823529411,.5568627450980392],[.9921568627450981,.7607843137254902,.5529411764705883],[.9921568627450981,.7568627450980392,.5450980392156862],[.9921568627450981,.7529411764705882,.5372549019607843],[.9921568627450981,.7490196078431373,.5333333333333333],[.9921568627450981,.7450980392156863,.5254901960784314],[.9921568627450981,.7411764705882353,.5176470588235295],[.9921568627450981,.7372549019607844,.5137254901960784],[.9921568627450981,.7333333333333333,.5058823529411764],[.9921568627450981,.7294117647058823,.4980392156862745],[.9921568627450981,.7254901960784313,.49411764705882355],[.9921568627450981,.7215686274509804,.48627450980392156],[.9921568627450981,.7176470588235294,.47843137254901963],[.9921568627450981,.7137254901960784,.4745098039215686],[.9921568627450981,.7098039215686275,.4666666666666667],[.9921568627450981,.7058823529411765,.4588235294117647],[.9921568627450981,.7019607843137254,.4549019607843137],[.9921568627450981,.6980392156862745,.4470588235294118],[.9921568627450981,.6941176470588235,.44313725490196076],[.9921568627450981,.6901960784313725,.43529411764705883],[.9921568627450981,.6862745098039216,.42745098039215684],[.9921568627450981,.6823529411764706,.4235294117647059],[.9921568627450981,.6784313725490196,.41568627450980394],[.9921568627450981,.6745098039215687,.4117647058823529],[.9921568627450981,.6705882352941176,.403921568627451],[.9921568627450981,.6666666666666666,.396078431372549],[.9921568627450981,.6627450980392157,.39215686274509803],[.9921568627450981,.6549019607843137,.3843137254901961],[.9921568627450981,.6509803921568628,.3803921568627451],[.9921568627450981,.6470588235294118,.37254901960784315],[.9921568627450981,.6431372549019608,.3686274509803922],[.9921568627450981,.6392156862745098,.3607843137254902],[.9921568627450981,.6352941176470588,.3568627450980392],[.9921568627450981,.6313725490196078,.34901960784313724],[.9921568627450981,.6274509803921569,.34509803921568627],[.9921568627450981,.6235294117647059,.33725490196078434],[.9921568627450981,.6196078431372549,.3333333333333333],[.9921568627450981,.615686274509804,.3254901960784314],[.9921568627450981,.611764705882353,.3215686274509804],[.9921568627450981,.6078431372549019,.3137254901960784],[.9921568627450981,.6039215686274509,.30980392156862746],[.9882352941176471,.6,.30196078431372547],[.9882352941176471,.596078431372549,.2980392156862745],[.9882352941176471,.592156862745098,.2901960784313726],[.9882352941176471,.5882352941176471,.28627450980392155],[.9882352941176471,.5843137254901961,.2823529411764706],[.9882352941176471,.5764705882352941,.27450980392156865],[.9882352941176471,.5725490196078431,.27058823529411763],[.9882352941176471,.5686274509803921,.2627450980392157],[.9882352941176471,.5647058823529412,.25882352941176473],[.984313725490196,.5607843137254902,.25098039215686274],[.984313725490196,.5568627450980392,.24705882352941178],[.984313725490196,.5529411764705883,.24313725490196078],[.984313725490196,.5490196078431373,.23529411764705882],[.984313725490196,.5450980392156862,.23137254901960785],[.9803921568627451,.5411764705882353,.22745098039215686],[.9803921568627451,.5372549019607843,.2196078431372549],[.9803921568627451,.5333333333333333,.21568627450980393],[.9803921568627451,.5294117647058824,.21176470588235294],[.9803921568627451,.5215686274509804,.20392156862745098],[.9764705882352941,.5176470588235295,.2],[.9764705882352941,.5137254901960784,.19607843137254902],[.9764705882352941,.5098039215686274,.18823529411764706],[.9725490196078431,.5058823529411764,.1843137254901961],[.9725490196078431,.5019607843137255,.1803921568627451],[.9725490196078431,.4980392156862745,.17254901960784313],[.9686274509803922,.49411764705882355,.16862745098039217],[.9686274509803922,.49019607843137253,.16470588235294117],[.9686274509803922,.4823529411764706,.1607843137254902],[.9647058823529412,.47843137254901963,.15294117647058825],[.9647058823529412,.4745098039215686,.14901960784313725],[.9607843137254902,.47058823529411764,.1450980392156863],[.9607843137254902,.4666666666666667,.1411764705882353],[.9607843137254902,.4627450980392157,.13725490196078433],[.9568627450980393,.4588235294117647,.13333333333333333],[.9568627450980393,.4549019607843137,.12549019607843137],[.9529411764705882,.45098039215686275,.12156862745098039],[.9529411764705882,.4470588235294118,.11764705882352941],[.9490196078431372,.4392156862745098,.11372549019607843],[.9490196078431372,.43529411764705883,.10980392156862745],[.9450980392156862,.43137254901960786,.10588235294117647],[.9450980392156862,.42745098039215684,.10196078431372549],[.9411764705882353,.4235294117647059,.09803921568627451],[.9411764705882353,.4196078431372549,.09411764705882353],[.9372549019607843,.41568627450980394,.09019607843137255],[.9372549019607843,.4117647058823529,.08627450980392157],[.9333333333333333,.40784313725490196,.08235294117647059],[.9294117647058824,.403921568627451,.0784313725490196],[.9294117647058824,.4,.0784313725490196],[.9254901960784314,.396078431372549,.07450980392156863],[.9254901960784314,.38823529411764707,.07058823529411765],[.9215686274509803,.3843137254901961,.06666666666666667],[.9176470588235294,.3803921568627451,.06274509803921569],[.9176470588235294,.3764705882352941,.06274509803921569],[.9137254901960784,.37254901960784315,.058823529411764705],[.9098039215686274,.3686274509803922,.054901960784313725],[.9098039215686274,.36470588235294116,.054901960784313725],[.9058823529411765,.3607843137254902,.050980392156862744],[.9019607843137255,.3568627450980392,.047058823529411764],[.8980392156862745,.35294117647058826,.047058823529411764],[.8941176470588236,.34901960784313724,.043137254901960784],[.8941176470588236,.34509803921568627,.043137254901960784],[.8901960784313725,.3411764705882353,.0392156862745098],[.8862745098039215,.33725490196078434,.03529411764705882],[.8823529411764706,.3333333333333333,.03529411764705882],[.8784313725490196,.32941176470588235,.03137254901960784],[.8745098039215686,.3254901960784314,.03137254901960784],[.8705882352941177,.3215686274509804,.03137254901960784],[.8666666666666667,.3215686274509804,.027450980392156862],[.8627450980392157,.3176470588235294,.027450980392156862],[.8588235294117647,.3137254901960784,.023529411764705882],[.8549019607843137,.30980392156862746,.023529411764705882],[.8509803921568627,.3058823529411765,.023529411764705882],[.8470588235294118,.30196078431372547,.0196078431372549],[.8431372549019608,.2980392156862745,.0196078431372549],[.8392156862745098,.2980392156862745,.0196078431372549],[.8352941176470589,.29411764705882354,.01568627450980392],[.8313725490196079,.2901960784313726,.01568627450980392],[.8235294117647058,.28627450980392155,.01568627450980392],[.8196078431372549,.2823529411764706,.01568627450980392],[.8156862745098039,.2823529411764706,.01568627450980392],[.8117647058823529,.2784313725490196,.011764705882352941],[.803921568627451,.27450980392156865,.011764705882352941],[.8,.27058823529411763,.011764705882352941],[.796078431372549,.27058823529411763,.011764705882352941],[.788235294117647,.26666666666666666,.011764705882352941],[.7843137254901961,.2627450980392157,.011764705882352941],[.7803921568627451,.2627450980392157,.011764705882352941],[.7725490196078432,.25882352941176473,.011764705882352941],[.7686274509803922,.2549019607843137,.011764705882352941],[.7607843137254902,.2549019607843137,.00784313725490196],[.7568627450980392,.25098039215686274,.00784313725490196],[.7490196078431373,.24705882352941178,.00784313725490196],[.7450980392156863,.24705882352941178,.00784313725490196],[.7411764705882353,.24313725490196078,.00784313725490196],[.7333333333333333,.24313725490196078,.00784313725490196],[.7294117647058823,.23921568627450981,.00784313725490196],[.7215686274509804,.23921568627450981,.00784313725490196],[.7176470588235294,.23529411764705882,.00784313725490196],[.7098039215686275,.23137254901960785,.00784313725490196],[.7058823529411765,.23137254901960785,.00784313725490196],[.6980392156862745,.22745098039215686,.011764705882352941],[.6941176470588235,.22745098039215686,.011764705882352941],[.6862745098039216,.2235294117647059,.011764705882352941],[.6823529411764706,.2235294117647059,.011764705882352941],[.6745098039215687,.2196078431372549,.011764705882352941],[.6705882352941176,.2196078431372549,.011764705882352941],[.6666666666666666,.21568627450980393,.011764705882352941],[.6588235294117647,.21568627450980393,.011764705882352941],[.6549019607843137,.21176470588235294,.011764705882352941],[.6470588235294118,.21176470588235294,.011764705882352941],[.6431372549019608,.20784313725490197,.011764705882352941],[.6392156862745098,.20784313725490197,.011764705882352941],[.6313725490196078,.20392156862745098,.011764705882352941],[.6274509803921569,.20392156862745098,.011764705882352941],[.6235294117647059,.2,.011764705882352941],[.615686274509804,.2,.011764705882352941],[.611764705882353,.19607843137254902,.011764705882352941],[.6078431372549019,.19607843137254902,.011764705882352941],[.6,.19215686274509805,.011764705882352941],[.596078431372549,.19215686274509805,.011764705882352941],[.592156862745098,.18823529411764706,.011764705882352941],[.5843137254901961,.18823529411764706,.011764705882352941],[.5803921568627451,.1843137254901961,.011764705882352941],[.5764705882352941,.1843137254901961,.011764705882352941],[.5725490196078431,.1803921568627451,.01568627450980392],[.5647058823529412,.1803921568627451,.01568627450980392],[.5607843137254902,.17647058823529413,.01568627450980392],[.5568627450980392,.17647058823529413,.01568627450980392],[.5529411764705883,.17254901960784313,.01568627450980392],[.5450980392156862,.17254901960784313,.01568627450980392],[.5411764705882353,.16862745098039217,.01568627450980392],[.5372549019607843,.16862745098039217,.01568627450980392],[.5333333333333333,.16470588235294117,.01568627450980392],[.5254901960784314,.16470588235294117,.01568627450980392],[.5215686274509804,.1607843137254902,.01568627450980392],[.5176470588235295,.1607843137254902,.01568627450980392],[.5137254901960784,.1568627450980392,.01568627450980392],[.5058823529411764,.1568627450980392,.01568627450980392],[.5019607843137255,.15294117647058825,.01568627450980392],[.4980392156862745,.15294117647058825,.01568627450980392]]},k={Default:{3:["#fffff","#6C8B9F","#023858"],4:["#fffff","#C3D0D8","#6C8B9F","#023858"],5:["#fffff","#C3D0D8","#88A1B1","#52778D","#023858"],6:["#fffff","#E1E7EB","#88A1B1","#52778D","#37627B","#023858"],7:["#fffff","#C3D0D8","#A6B9C4","#6C8B9F","#52778D","#37627B","#023858"],8:["#fffff","#E1E7EB","#C3D0D8","#A6B9C4","#6C8B9F","#52778D","#37627B","#023858"],9:["#fffff","#E1E7EB","#C3D0D8","#A6B9C4","#88A1B1","#6C8B9F","#52778D","#37627B","#023858"]},OrRd:{3:["#fee8c8","#fdbb84","#e34a33"],4:["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],5:["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],6:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],7:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],8:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],9:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]},YlOrRd:{3:["#ffeda0","#feb24c","#f03b20"],4:["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],5:["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],6:["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],7:["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],8:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],9:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]},YlGn:{3:["#f7fcb9","#addd8e","#31a354"],4:["#ffffcc","#c2e699","#78c679","#238443"],5:["#ffffcc","#c2e699","#78c679","#31a354","#006837"],6:["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],7:["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],8:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],9:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]},YlGnBu:{3:["#edf8b1","#7fcdbb","#2c7fb8"],4:["#ffffcc","#a1dab4","#41b6c4","#225ea8"],5:["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],6:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],7:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],8:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],9:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]},GnBu:{3:["#e0f3db","#a8ddb5","#43a2ca"],4:["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],5:["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],6:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],7:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],8:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],9:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]},BuGn:{3:["#e5f5f9","#99d8c9","#2ca25f"],4:["#edf8fb","#b2e2e2","#66c2a4","#238b45"],5:["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],6:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],7:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],8:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],9:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]},PuBuGn:{3:["#ece2f0","#a6bddb","#1c9099"],4:["#f6eff7","#bdc9e1","#67a9cf","#02818a"],5:["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],6:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],7:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],8:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],9:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]},PuBu:{3:["#ece7f2","#a6bddb","#2b8cbe"],4:["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],5:["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],6:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],7:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],8:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],9:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]},BuPu:{3:["#e0ecf4","#9ebcda","#8856a7"],4:["#edf8fb","#b3cde3","#8c96c6","#88419d"],5:["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],6:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],7:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],8:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],9:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]},RdPu:{3:["#fde0dd","#fa9fb5","#c51b8a"],4:["#feebe2","#fbb4b9","#f768a1","#ae017e"],5:["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],6:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],7:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],8:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],9:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]},PuRd:{3:["#e7e1ef","#c994c7","#dd1c77"],4:["#f1eef6","#d7b5d8","#df65b0","#ce1256"],5:["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],6:["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],7:["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],8:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],9:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]},YlOrBr:{3:["#fff7bc","#fec44f","#d95f0e"],4:["#ffffd4","#fed98e","#fe9929","#cc4c02"],5:["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],6:["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],7:["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],8:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],9:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]},Purples:{3:["#efedf5","#bcbddc","#756bb1"],4:["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],5:["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],6:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],7:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],8:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],9:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]},Blues:{3:["#deebf7","#9ecae1","#3182bd"],4:["#eff3ff","#bdd7e7","#6baed6","#2171b5"],5:["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],6:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],7:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],8:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],9:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]},Greens:{3:["#e5f5e0","#a1d99b","#31a354"],4:["#edf8e9","#bae4b3","#74c476","#238b45"],5:["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],6:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],7:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],8:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],9:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]},Oranges:{3:["#fee6ce","#fdae6b","#e6550d"],4:["#feedde","#fdbe85","#fd8d3c","#d94701"],5:["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],6:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],7:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],8:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],9:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]},Reds:{3:["#fee0d2","#fc9272","#de2d26"],4:["#fee5d9","#fcae91","#fb6a4a","#cb181d"],5:["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],6:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],7:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],8:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],9:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]},Greys:{3:["#f0f0f0","#bdbdbd","#636363"],4:["#f7f7f7","#cccccc","#969696","#525252"],5:["#f7f7f7","#cccccc","#969696","#636363","#252525"],6:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],7:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],8:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],9:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]},PuOr:{3:["#f1a340","#f7f7f7","#998ec3"],4:["#e66101","#fdb863","#b2abd2","#5e3c99"],5:["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],6:["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],7:["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],8:["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],9:["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],10:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],11:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]},BrBG:{3:["#d8b365","#f5f5f5","#5ab4ac"],4:["#a6611a","#dfc27d","#80cdc1","#018571"],5:["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],6:["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],7:["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],8:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],9:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],10:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],11:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]},PRGn:{3:["#af8dc3","#f7f7f7","#7fbf7b"],4:["#7b3294","#c2a5cf","#a6dba0","#008837"],5:["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],6:["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],7:["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],8:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],9:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],10:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],11:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]},PiYG:{3:["#e9a3c9","#f7f7f7","#a1d76a"],4:["#d01c8b","#f1b6da","#b8e186","#4dac26"],5:["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],6:["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],7:["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],8:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],9:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],10:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],11:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]},RdBu:{3:["#ef8a62","#f7f7f7","#67a9cf"],4:["#ca0020","#f4a582","#92c5de","#0571b0"],5:["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],6:["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],7:["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]},RdGy:{3:["#ef8a62","#ffffff","#999999"],4:["#ca0020","#f4a582","#bababa","#404040"],5:["#ca0020","#f4a582","#ffffff","#bababa","#404040"],6:["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],7:["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]},RdYlBu:{3:["#fc8d59","#ffffbf","#91bfdb"],4:["#d7191c","#fdae61","#abd9e9","#2c7bb6"],5:["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],6:["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],7:["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],8:["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],9:["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]},Spectral:{3:["#fc8d59","#ffffbf","#99d594"],4:["#d7191c","#fdae61","#abdda4","#2b83ba"],5:["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],6:["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],7:["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],8:["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],9:["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],10:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],11:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]},AntiSpectral:{3:["#99d594","#ffffbf","#fc8d59"],4:["#2b83ba","#abdda4","#fdae61","#d7191c"],5:["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],6:["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],7:["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],8:["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],9:["#3288bd","#66c2a5","#abdda4","#ffffbf","#fee08b","#e6f598","#fdae61","#f46d43","#d53e4f"],10:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],11:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]},RdYlGn:{3:["#fc8d59","#ffffbf","#91cf60"],4:["#d7191c","#fdae61","#a6d96a","#1a9641"],5:["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],6:["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],7:["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],8:["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],9:["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]},Accent:{3:["#7fc97f","#beaed4","#fdc086"],4:["#7fc97f","#beaed4","#fdc086","#ffff99"],5:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],6:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],7:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],8:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]},Dark2:{3:["#1b9e77","#d95f02","#7570b3"],4:["#1b9e77","#d95f02","#7570b3","#e7298a"],5:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],6:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],7:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],8:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]},Paired:{3:["#a6cee3","#1f78b4","#b2df8a"],4:["#a6cee3","#1f78b4","#b2df8a","#33a02c"],5:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],6:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],7:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],8:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],9:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],10:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],11:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],12:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]},Pastel1:{3:["#fbb4ae","#b3cde3","#ccebc5"],4:["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],5:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],6:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],7:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],8:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],9:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Pastel2:{3:["#b3e2cd","#fdcdac","#cbd5e8"],4:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],5:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],6:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],7:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],8:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]},Set1:{3:["#e41a1c","#377eb8","#4daf4a"],4:["#e41a1c","#377eb8","#4daf4a","#984ea3"],5:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],6:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],7:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],8:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],9:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]},Set2:{3:["#66c2a5","#fc8d62","#8da0cb"],4:["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],5:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],6:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],7:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],8:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]},Set3:{3:["#8dd3c7","#ffffb3","#bebada"],4:["#8dd3c7","#ffffb3","#bebada","#fb8072"],5:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],6:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],7:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],8:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],9:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],10:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],11:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],12:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]}};class w{constructor(){this.colorscale=null,this.grey="#252525",this.highlight="#AF9B90",this.ensemble="#C0C0C0",this.target=this.catColors=["#3366cc","#dc3912","#ff9900","#109618","#990099","#0099c6","#dd4477","#66aa00","#b82e2e","#316395","#994499","#22aa99","#aaaa11","#6633cc","#e67300","#8b0707","#651067","#329262","#5574a6","#3b3eac"],this.colorPadding=[],this.categoricalColors=_,this.colorbrewer=k,this.UniformColorMaps=T}getScale(){return this.colorscale}getColor(t,e){return this.colorscale(t[e])}getColorByValue(t){return this.rgbArrayToHex(this.colorscale(t))}setColorPadding(t){let e=[],s=1/t;for(let i=0;i<t;i+=1)e.push(i*s);return e.push(1),e}setColorScale(t="Inclusive",e=0,s=0,i="Default",a="9"){this.type=t,this.colorMin=e,this.colorMax=s;let r=this.colorbrewer[i][a];this.colorPadding=this.setColorPadding(a);let o=null;switch(t){case"Module":o=C["s"](C["t"]);break;case"Inclusive":o=M["scale"](r).padding([0,0]).gamma(.5).domain([e,s]);break;case"Exclusive":o=M["scale"](r).padding([0,0]).gamma(.5).domain([e,s]);break;case"Imbalance":o=M["scale"](r).domain([0,1]);break;case"MeanDiff":{let t=Math.max(Math.abs(e),Math.abs(s));o=M["scale"]("RdYlGn").padding([0,0]).domain([t,-t]);break}case"RankDiff":o=M["scale"](r).gamma(.5).domain([e,s]);break;case"MeanGradients":o=M["scale"](r).padding([0,0]).gamma(.5).domain([e,s]);break}this.colorscale=o}CYKToRGB(t){let e={},s=t[0],i=t[1],a=t[2],r=0;function o(t){var e=t.toString(16);return 1==e.length?"0"+e:e}return e.r=1-Math.min(1,s*(1-r)+r),e.g=1-Math.min(1,i*(1-r)+r),e.b=1-Math.min(1,a*(1-r)+r),e.r=Math.round(255*e.r),e.g=Math.round(255*e.g),e.b=Math.round(255*e.b),"#"+o(e.r)+o(e.g)+o(e.b)}setContrast(t){const e=this.hexToRgb(t),s=Math.round((299*parseInt(e.r)+587*parseInt(e.g)+114*parseInt(e.b))/1e3);return s>128?"#000":"#fff"}getAllColors(){return Object.keys(this.colorbrewer)}getCatColor(t){return this.catColors[t]}hexToRgb(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}rgbToHex(t,e,s){return"#"+((1<<24)+(t<<16)+(e<<8)+s).toString(16).slice(1)}rgbArrayToHex(t){t=t._rgb;let e=Math.floor(t[0]),s=Math.floor(t[1]),i=Math.floor(t[2]);return"#"+((1<<24)+(e<<16)+(s<<8)+i).toString(16).slice(1)}valToPercentColor(t,e){const s=Math.min(Math.max(0,Math.round(t*e.length)),e.length-1);return e[s]}percentColToD3Rgb(t){const e=t.map(t=>Math.round(255*t));return`rgb(${e[0]}, ${e[1]}, ${e[2]})`}valToD3Rgb(t,e){return this.percentColToD3Rgb(this.valToPercentColor(t,e))}}var S=s("512e"),D=s.n(S);s("c1ea");const P=new i["default"];var E=P,I=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.summaryChip)+" ")]),s("v-spacer"),s("span",{staticClass:"component-info"},[t._v(" Encoding = "+t._s(t.selectedMetric)+" runtime. ")])],1),s("v-layout",[s("svg",{attrs:{id:t.id}},[s("g",{attrs:{id:"container"}},[s("EnsembleEdges",{ref:"EnsembleEdges"}),s("EnsembleNodes",{ref:"EnsembleNodes"}),s("MiniHistograms",{ref:"MiniHistograms"}),s("EnsembleColorMap",{ref:"EnsembleColorMap"})],1)])])],1)},B=[],A=s("789b"),O=s("bc17");function H(){var t={},e=24,s=8,i=[1,1],a=[],r=[],o=10,l=0,n=0,h=1,d={},c={},u=!0,f=[],m="";let p,g=0;function x(){let t=0;a.forEach((function(e){d[e.id]=e,u&&console.debug("[Assign Link ids] ",e.id,"with index: ",t),t+=1})),r.forEach((function(e){void 0==d[e.source]&&(d[e.source]=t,t+=1),void 0==d[e.target]&&(d[e.target]=t,t+=1),e.source_data=d[e.source],e.target_data=d[e.target]}))}function b(){a.forEach((function(t){t.sourceLinks=[],t.targetLinks=[],t["maxLinkVal"]=0,t["minLinkVal"]=1e15})),r.forEach((function(t){t.source_data.sourceLinks.push(t),t.source_data.maxLinkVal=Math.max(t.source_data.maxLinkVal,t["weight"]),t.source_data.minLinkVal=Math.min(t.source_data.minLinkVal,t["weight"]),t.target_data.targetLinks.push(t),t.target_data.minLinkVal=Math.min(t.target_data.minLinkVal,t["weight"]),t.target_data.maxLinkVal=Math.max(t.target_data.maxLinkVal,t["weight"])})),a.forEach((function(t){let e=Math.max(t.sourceLinks.length,t.targetLinks.length);0==t.sourceLinks.length&&(e=t.targetLinks.length),t["maxLinks"]=e}))}function y(){a.forEach((function(t){let e=Object(O["i"])(t.sourceLinks,t=>t.weight),s=Object(O["i"])(t.targetLinks,t=>t.weight),i=Object(O["i"])(t.sourceLinks,t=>t.targetWeight),a=Object(O["i"])(t.targetLinks,t=>t.targetWeight);t.max_flow=Math.max(e,s),"intermediate"==t.type||(t.value=t["actual_time"]["Inclusive"],t.targetValue=0,void 0!=t[c.selectedTargetDataset]&&(t.targetValue=t[c.selectedTargetDataset]["actual_time"]["Inclusive"])),void 0!=t[c.selectedTargetDataset]&&(t.targetValue=Math.max(t.targetValue,Math.max(i,a))),console.debug("[Compute node values] Adjusted flow",t.id,": ",t.value),console.debug("[Compute node values] Adjusted target flow",t.id,": ",t.targetValue)}))}function v(t){a.forEach((function(t){let e=p(t.level);t.x=e}))}function $(){let t=a,s=[],r=0,o=0;while(t.length)s=[],t.forEach((function(t){t.level=r,t.dx=e,t.sourceLinks.forEach((function(t){s.push(t.target_data)}))})),t=s,r+=1,o+=1;console.debug("[Compute node breadths] Number of levels: ",r),g=2*e,p=Object(A["a"])().domain([0,r]).range([g,i[0]]),v((i[0]-e)/h)}function M(t){let e;for(let s=0;s<t.length;s+=1)"intermediate"==t[s].id.split("_")[0]&&(e=t[s],t.splice(s,1));return void 0!=e&&t.push(e),t}function _(){let t=Object(O["f"])(f,t=>{let e=0;return e=l>0?l:Object(O["i"])(t,t=>t.value),Math.abs(i[1]-(t.length-1)*s)/e});return t}function T(){let t=_(),e=0;f.forEach((function(s){"Minimal edge crossing"==c.selectedSuperNodePositionMode?console.log("TODO: Minimize edge crossing."):s.sort((function(t,e){return"Inclusive"==c.selectedSuperNodePositionMode?e["time (inc)"]-t["time (inc)"]:"Exclusive"==c.selectedSuperNodePositionMode?e["time"]-t["time"]:void 0})),s=M(s),s.forEach((function(e,s){let i=0;r.forEach((function(t){t["target"]==e&&null!=t["source"]&&null!=t["source"]["y"]&&(i=Math.max(i,t["source"]["y"]))})),e.y=Math.max(i,s),e.parY=e.y,console.debug("[Compute node depths] Node: ",e.id),console.debug("[Compute node depths] value: ",e.value),console.debug("[Compute node depths] minNodeScale: ",n),console.debug("[Compute node depths] Ensemble scaling: ",t),e.height=e.value*n*t,e.targetHeight=e.targetValue*n*t,console.debug("[Compute node depths] Node height: ",e.height)})),e+=1})),r.forEach((function(e){let s=e.source_data.value/e.source_data.max_flow;e.scaled_weight=e.weight*s,e.height=e.scaled_weight*t;let i=e.source_data.targetValue/e.source_data.value;e.targetWeight=e.weight*i,e.targetHeight=e.targetWeight*t;let a=e.targetHeight/e.height;a!=i&&console.log("Error: The target-ensemble link height ratio is incosistent with the link's value")}))}function k(t){function e(t){return I(t.source)*t.weight}f.forEach((function(s,i){s.forEach((function(s){if(s.targetLinks.length){var i=C["w"](s.targetLinks,e)/C["w"](s.targetLinks,B);s.y+=(i-I(s))*t}}))}))}function w(t){function e(t){return I(t.target)*t.weight}f.slice().reverse().forEach((function(s){s.forEach((function(s){if(s.sourceLinks.length){var i=C["w"](s.sourceLinks,e)/C["w"](s.sourceLinks,B);s.y+=(i+I(s))*t}}))}))}function S(){let t=0;return f.forEach((function(e){var a,r,o=0;for(a of(e.sort(D),e))r=o-a.y,r>0&&(a.y+=r),o=a.y+a.height+s;if(r=o-s-i[1],r>0){o=a.y-=r;for(let t=e.length-2;t>0;--t)a=e[t],r=a.y+a.height+s-o,r>0&&(a.y-=r),o=a.y}r=o-s-i[1],r>0&&(t=Math.max(r,t))})),t}function D(t,e){return t["y"]-e["y"]}function P(t){f=C["n"]().key((function(t){return t.level})).sortKeys(C["a"]).entries(a).map((function(t){let e=[];for(let s=0;s<t.values.length;s+=1){t.values[s];e.push(t.values[s])}return e})),T(),S();for(var e=0;e<t;++e){let s=Math.pow(.99,e),i=Math.max(1-s,(e+1)/t);w(s),S(i),k(s),S(i)}}function E(){function t(t,e){return t.source.y-e.source.y}function e(t,e){return t.target.y-e.target.y}a.forEach((function(s){s.sourceLinks.sort(e),s.targetLinks.sort(t)})),a.forEach((function(t){var e=0,s=0;t.sourceLinks.sort((function(t,e){return e.source_data.y-t.source_data.y})),t.targetLinks.sort((function(t,e){return t.target_data.y-e.target_data.y})),t.sourceLinks.forEach((function(t){"back_edge"!=t.type&&(t.sy=e,e+=t.height)})),t.targetLinks.forEach((function(t){"back_edge"!=t.type&&(t.ty=s,s+=t.height)}))}))}function I(t){return 0}function B(t){return t.weight}return t.nodeWidth=function(s){return arguments.length?(e=+s,t):e},t.levelSpacing=function(e){return arguments.length?(o=+e,t):o},t.nodePadding=function(e){return arguments.length?(s=+e,t):s},t.nodes=function(e){return arguments.length?(a=e,t):a},t.links=function(e){return arguments.length?(r=e,t):r},t.size=function(e){return arguments.length?(i=e,t):i},t.maxLevel=function(e){return arguments.length?(h=e,t):h},t.targetDataset=function(e){return arguments.length?(m=e,t):m},t.store=function(e){return arguments.length?(c=e,t):c},t.layout=function(e){return x(),b(),console.debug("[Sankey] Computed Node links."),y(),console.debug("[Sankey] Computed node values."),$(),console.debug("[Sankey] Computed node breadths."),P(e),console.debug("[Sankey] Computed node depths"),E(),console.debug("[Sankey] Computed linke depths."),t},t.relayout=function(){return E(),t},t.setMinNodeScale=function(e){return arguments.length?(n=+e,t):n},t.link=function(){var t=.4;function e(e){var s=e.source.x+e.source.height,i=e.target.x,a=C["i"](s,i),r=a(t),o=a(1-t),l=e.source.y+e.sy+e.source.height/2,n=e.target.y+e.ty+e.target.height/2;return"M"+s+","+l+"C"+r+","+l+" "+o+","+n+" "+i+","+n}return e.curvature=function(s){return arguments.length?(t=+s,e):t},e},t}var R=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}},[s("MeanGradients",{ref:"MeanGradients"}),s("Mean",{ref:"Mean"}),s("ToolTip",{ref:"ToolTip"}),s("Guides",{ref:"Guides"}),s("TargetLine",{ref:"TargetLine"}),s("MeanDiff",{ref:"MeanDiff"}),s("RankDiff",{ref:"RankDiff"})],1)},F=[];function G(t){if(0==t)return t;let e=C["g"](".2");return e(t)}function L(t){return 1==t?t+" run":t+" runs"}function q(t){let e=C["g"](".2");return e(t)}function W(t,e=0){let s=C["g"](".2"),i=s(t);if(0==i)return[0,0,e];let a=0,r=0,o=0;if(-1!=i.indexOf("e")){let t=i.toString().split("e");a=parseInt(t[1].split("+")[1]),r=parseInt(a)-e,o=parseFloat(t[0])}return[o.toFixed(2),a,e]}function N(t){let e=C["g"](".2"),s=e(t),i=s;return i=-1!=s.indexOf("e")?parseInt(s.toString().split("e")[1].split("+")[1]):0,i}function z(t,e){if(t.indexOf("=")&&(t=t.split("=")[0]),t.indexOf(":")>-1){let e=t.split(":");t=e[e.length-1]}return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t}function V(t,e){const s=C["u"]("#"+t).append("svg");s.append("text").attrs({x:-99999,y:-99999}).text(t=>e);const i=s.node().getBBox();return s.remove(),{width:i.width,height:i.height}}function j(t,e){let s="",i={};return"super-node"==e.type&&void 0!=t.modules["ensemble"][e.module]?(s=e.module,i=t.modules["ensemble"][s][t.selectedMetric]["gradients"]):"component-node"==e.type?(s=e.name,i=t.callsites["ensemble"][s][t.selectedMetric]["gradients"]):"intermediate"==e.type&&(i={}),i}function Y(t){if(!t||0===t.length)return{height:0,width:0};const e=C["u"]("body").append("svg").attr("class","dummy");e.append("text").attrs({x:-1e3,y:-1e3}).text(t);const s=e.node().getBBox();return e.remove(),{height:s.height,width:s.width}}function X(t,e){t.each((function(){var t,s=C["u"](this),i=s.text().split(/\s+/).reverse(),a=[],r=0,o=1.1,l=s.attr("x"),n=s.attr("y"),h=0,d=s.text(null).append("tspan").attr("dy",h+"em");while(t=i.pop())a.push(t),d.text(a.join(" ")),d.node().getComputedTextLength()>e&&(a.pop(),d.text(a.join(" ")),a=[t],d=s.append("tspan").attr("x",l).attr("y",n).attr("dy",++r*o+h+"em").text(t))}))}var K=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},U=[],Q={name:"MeanGradients",data:()=>({strokeWidth:7,id:"mean-gradients"}),methods:{init(t,e){this.nodes=t,this.containerG=e,this.gradients(),this.visualize()},colorScale(){},gradients(){for(let t of this.nodes){const e=C["u"]("#"+this.id).append("defs"),s=e.append("linearGradient").attr("id","mean-gradient"+t.client_idx).attr("class","mean-gradient");s.attr("x1","0%").attr("y1","0%").attr("x2","0%").attr("y2","100%");let i=[],a=[];"super-node"==t.type&&void 0!=this.$store.modules.ensemble[t.module]?(i=this.$store.modules["ensemble"][t.module][this.$store.selectedMetric]["gradients"]["hist"]["x"],a=this.$store.modules["ensemble"][t.module][this.$store.selectedMetric]["gradients"]["hist"]["y"]):"component-node"==t.type?(i=this.$store.callsites["ensemble"][t.name][this.$store.selectedMetric]["gradients"]["hist"]["x"],a=this.$store.callsites["ensemble"][t.name][this.$store.selectedMetric]["gradients"]["hist"]["y"]):"intermediate"==t.type&&(i=[],a=[]);for(let t=0;t<i.length;t+=1){let e=(t+t+1)/(2*i.length),r=a[t];s.append("stop").attr("offset",100*e+"%").attr("stop-color",this.$store.distributionColor.getColorByValue(r))}}},visualize(){let t=this.containerG.selectAll("rect").data(this.nodes);t.transition().duration(this.$store.transitionDuration).attrs({opacity:t=>"intermediate"==t.type?"#f00":"#0f0",stroke:t=>{let e="",s=this.$store.runtimeColor.intermediate;return e="Inclusive"==this.$store.selectedMetric?"time (inc)":"time","component-node"==t.type?void 0!=this.$store.callsites[this.$store.selectedTargetDataset][t.id]&&(s=C["o"](this.$store.runtimeColor.getColor(t,e))):"super-node"==t.type&&void 0!=this.$store.modules[this.$store.selectedTargetDataset][t.id]&&(s=C["o"](this.$store.runtimeColor.getColor(t,e))),s},"stroke-width":t=>"intermediate"==t.type?1:this.strokeWidth,fill:t=>"intermediate"==t.type?this.$store.runtimeColor.intermediate:"super-node"==t.type?void 0==this.$store.modules[this.$store.selectedTargetDataset][t.id]?this.$store.runtimeColor.intermediate:"url(#mean-gradient"+t.client_idx+")":"component-node"==t.type?void 0==this.$store.callsites[this.$store.selectedTargetDataset][t.name]?this.$store.runtimeColor.intermediate:"url(#mean-gradient"+t.client_idx+")":void 0})},clear(){}}},Z=Q,J=Object(x["a"])(Z,K,U,!1,null,null,null),tt=J.exports,et=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},st=[],it={template:"",name:"Guides",components:{},data:()=>({id:"guides",nodes:[],svg:void 0,gradients:{},positionDatasetMap:{}}),methods:{init(t){this.nodes=t;for(let e of this.nodes)this.process(e)},update(t){this.new_nodes=[];for(let e of this.new_nodes)this.process(e)},process(t){if(this.gradients[t.id]=j(this.$store,t),void 0!=this.gradients[t.id]["dataset"]){let e=this.gradients[t.id]["dataset"]["position"];this.positionDatasetMap[t]={};for(let s in e){let i=e[s];void 0==this.positionDatasetMap[t][i]&&(this.positionDatasetMap[t][i]=[]),this.positionDatasetMap[t][i].push(s)}}},drawLines(t,e){let s=this.gradients[t.id]["hist"].x,i=t.height/s.length;for(let a=0;a<s.length;a+=1){let s=i*a;t.svg.append("line").attrs({class:"gradientGuides-"+e,id:"line-2-"+t.client_idx,x1:0,y1:s,x2:this.$parent.nodeWidth,y2:s,"stroke-width":1.5,opacity:.3,stroke:"#202020"})}},drawText(t,e){let s=this.gradients[t.id]["hist"].x,i=this.gradients[t.id]["hist"].y,a=t.height/s.length;for(let r=0;r<s.length;r+=1){let o=a*r,l=12;if(0!=i[r]){let n="summary",h="";if("detailed"==n){let s=this.positionDatasetMap[r][0];if(this.positionDatasetMap[r].length<3)for(let i=0;i<3;i+=1)h=this.positionDatasetMap[r][i],t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t["client_idx"],x:-60,y:o+l/2+a/2+l*i,fill:"black"}).style("z-index",100).style("font-size",l+"px").text(h);else{let i=this.positionDatasetMap[r].length-3;s=s+"+"+i,t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t["client_idx"],x:-60,y:o+l/2+a/2+l*r,fill:"black"}).style("z-index",100).style("font-size",l+"px").text(h)}}else"summary"==n&&(h=L(i[r]),t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t["client_idx"],x:-60,y:o+l/2+a/2,fill:"black"}).style("z-index",100).style("font-size",l+"px").text(h));if(0!=r&&r!=s.length-1){let i=G(s[r]);t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t["client_idx"],x:this.$parent.nodeWidth+10,y:o+l/2+a/2,fill:"black"}).style("z-index",100).style("font-size",l+"px").text(i)}}0==r?t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t.client_idx,x:this.$parent.nodeWidth+10,y:o,fill:"black"}).style("z-index",100).style("font-size",l+"px").text("Min. = "+G(s[r])):r==s.length-1&&t.svg.append("text").attrs({class:"gradientGuidesText-"+e,id:"line-2-"+t.client_idx,x:this.$parent.nodeWidth+10,y:o+a,fill:"black"}).style("z-index",100).style("font-size",l+"px").text("Max. = "+G(s[r]))}},visualize(t,e){C["v"](".ensemble-edge").style("opacity",.3),this.drawLines(t,e),this.drawText(t,e)},clear(t,e){t.svg.selectAll(".gradientGuides-"+e).remove(),t.svg.selectAll(".gradientGuidesText-"+e).remove()}}},at=it,rt=Object(x["a"])(at,et,st,!1,null,null,null),ot=rt.exports,lt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},nt=[],ht={name:"TargetLine",components:{},data:()=>({id:"target-line"}),methods:{init(t){this.nodes=t,this.ensemble_module_data=this.$store.modules["ensemble"],this.ensemble_callsite_data=this.$store.callsites["ensemble"];for(let e of t)this.visualize(e)},visualize(t){const e=j(this.$store,t);if(0!=Object.keys(e).length){let s=e["dataset"]["position"][this.$store.selectedTargetDataset]+1,i=t.height/this.$store.selectedRunBinCount,a=i*s-i/2;t.svg.append("line").attrs({class:"targetLines",id:"line-2-"+this.$store.selectedTargetDataset+"-"+t.client_idx,x1:0,y1:a,x2:this.$parent.nodeWidth,y2:a,"stroke-width":5,stroke:this.$store.distributionColor.target})}},clear(){C["v"](".targetLines").remove()}}},dt=ht,ct=Object(x["a"])(dt,lt,nt,!1,null,null,null),ut=ct.exports,ft=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip"}})},mt=[],pt={template:"",name:"ToolTip",components:{},data:()=>({id:"supernode-tooltip",textCount:0,textxOffset:20,textyOffset:20,textPadding:15,height:200,margin:35,mousePosX:0,mousePosY:0,prevMousePosX:void 0,prevMousePosY:void 0}),methods:{init(t){this.id=t;const e=C["u"]("#"+this.id);this.toolTipG=e.append("g")},positionX(){let t=0;return this.mousePosX>=this.$store.viewWidth/2&&(t=this.mousePosX+this.textxOffset),t=this.mousePosX-this.textxOffset,t},positionY(){let t=0;return this.mousePosY>=this.$store.viewHeight/2&&(t=this.mousePosY+this.textyOffset),t=this.mousePosY-this.textyOffset,t},visualize(t,e){this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.clear(),this.render(t,e),this.prevMousePosX=this.mousePosX,this.prevMousePosY=this.mousePosY},render(t,e){this.xOffset=this.positionX()+40,this.yOffset=this.positionY()+40,this.nodeHeight=e.height;const s=C["q"]().domain([2,11]).range([50,150]);this.toolTipG.attr("height",s(10)+"px"),this.toolTipRect=this.toolTipG.append("rect").attrs({class:"tooltip-container",fill:"#fff",stroke:"black",rx:"10px","fill-opacity":1,width:"325",height:this.height}).attrs({x:this.xOffset,y:this.yOffset}),this.runtimeInformation(e),this.pathInformation(e)},addText(t){this.textCount+=1,this.toolTipText=this.toolTipG.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"tooltip-content",x:()=>this.xOffset+this.margin,y:()=>this.yOffset+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t)},runtimeInformation(t){this.addText("Name: "+z(t.id,40)),this.addText("Inclusive Time: "+G(t["time (inc)"])),this.addText("Exclusive Time: "+G(t["time"]))},pathInformation(t){let e={};"Single"==this.$store.selectedMode?e=this.$store.modules[this.$store.selectedTargetDataset]:"Ensemble"==this.$store.selectedMode&&(e=this.$store.modules["ensemble"]);let s={};"Single"==this.$store.selectedMode?s=this.$store.callsites[this.$store.selectedTargetDataset]:"Ensemble"==this.$store.selectedMode&&(s=this.$store.callsites["ensemble"]);let i=[];i="Ensemble"!==this.$store.selectedMode?t[this.$store.selectedTargetDataset]["entry_function"].split(",").map(String):t["ensemble"]["entry_function"].split(",").map(String);let a={};for(let l=0;l<i.length;l+=1){let t=i[l].replace("'","").replace("'","").replace("[","").replace("]","").replace(" ","");a[t]=s[t][this.$store.selectedMetric]["mean_time"]}let r=Object.keys(a).map((function(t){return[t,a[t]]})),o=r.sort((function(t,e){return e[1]-t[1]}));this.rectWidth="10px",this.addText(""),this.addText("Entry call sites: "),this.entryFunctionInformation(t,o)},entryFunctionInformation(t,e){for(var s=0;s<Math.min(3,e.length);s++){this.textCount+=1;let i=this.$store.runtimeColor.getColorByValue(e[s][1]),a=this.$store.runtimeColor.getColorByValue(t),r=e[s][0],o=t.id,l=this.xOffset+this.margin,n=this.yOffset+this.textyOffset+this.textPadding*this.textCount;this.toolTipG.append("rect").attrs({width:this.rectWidth,height:this.rectWidth,x:l+"px",y:n-10+"px",class:"tooltip-content"}).style("fill",a),this.toolTipG.append("text").attrs({x:l+15+"px",y:n+"px",class:"tooltip-content"}).text(z(o,10)),this.toolTipG.append("text").attrs({x:l+120+"px",y:n+"px",class:"tooltip-content"}).text("->"),this.toolTipG.append("rect").attrs({width:this.rectWidth,height:this.rectWidth,x:l+140+"px",y:n-10+"px",class:"tooltip-content"}).style("fill",i),this.toolTipG.append("text").attrs({x:l+155+"px",y:n+"px",class:"tooltip-content"}).text(z(r,10))}let i=e.length-3;i>0&&this.addText("and "+i+" call sites more.")},clear(){this.textCount=0,C["v"](".tooltip-container").remove(),C["v"](".tooltip-content").remove()}}},gt=pt,xt=Object(x["a"])(gt,ft,mt,!1,null,null,null),bt=xt.exports,yt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},vt=[],$t={name:"Mean",data:()=>({stroke_width:3,id:"mean"}),methods:{init(t,e){this.nodes=t,this.containerG=e,this.module_data=this.$store.modules[this.$store.selectedTargetDataset],this.callsite_data=this.$store.callsites[this.$store.selectedTargetDataset],this.visualize()},setColorScale(){let t=0,e=0;for(let s of this.nodes)"super-node"==s.type?(t=Math.min(t,this.module_data[s.module][this.$store.selectedMetric]["mean_time"]),e=Math.max(e,this.module_data[s.module][this.$store.selectedMetric]["mean_time"])):"component-node"==s.type&&(t=Math.min(t,this.ensemble_callsite_data[s.name][this.$store.selectedMetric]["gradients"]["hist"]["y_min"]),e=Math.max(e,this.ensemble_callsite_data[s.name][this.$store.selectedMetric]["gradients"]["hist"]["y_max"]));this.$store.color.setColorScale(this.$store.selectedMetric,t,e,this.$store.selectedRuntimeColorMap,this.$store.selectedColorPoint),this.$parent.$parent.$refs.EnsembleColorMap.update(this.$store.mode,t,e)},visualize(){this.containerG.selectAll(".callsite-rect").data(this.nodes).transition().duration(this.$parent.transitionDuration).attrs({opacity:t=>"intermediate"==t.type?0:1,height:t=>t.height,stroke:"#000","stroke-width":t=>"intermediate"==t.type?1:this.stroke_width,fill:t=>{let e="";return"intermediate"==t.type?e=this.$store.runtimeColor.intermediate:"Inclusive"==this.$store.selectedMetric?e=this.$store.runtimeColor.getColor(t,"time (inc)"):"Exclusive"==this.$store.selectedMetric&&(e=this.$store.runtimeColor.getColor(t,"time")),e}})},clear(){}}},Ct=$t,Mt=Object(x["a"])(Ct,yt,vt,!1,null,null,null),_t=Mt.exports,Tt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},kt=[],wt=s("8701"),St=s.n(wt),Dt={name:"MeanDiff",components:{},data:()=>({strokeWidth:7,id:"mean-diff-gradients",meanDiff:{}}),methods:{init(t,e,s){this.nodes=t,this.containerG=e,this.data=s,this.process(),this.colorScale(),this.visualize()},process(){this.renderZeroLine={},this.rank_min=0,this.rank_max=0,this.mean_min=0,this.mean_max=0,this.mean_diff_min=0,this.mean_diff_max=0;for(let s=0;s<this.data.length;s+=1)("Inclusive"==this.$store.selectedMetric||"Exclusive"==this.$store.selectedMetric)&&(this.rank_min=Math.min(this.rank_min,this.data[s]["hist"]["y_min"]),this.rank_max=Math.max(this.rank_max,this.data[s]["hist"]["y_max"]),this.mean_min=Math.min(this.mean_min,this.data[s]["hist"]["x_min"]),this.mean_max=Math.max(this.mean_max,this.data[s]["hist"]["x_max"]),this.mean_diff_min=Math.min(this.mean_diff_min,this.data[s]["mean_diff"]),this.mean_diff_max=Math.max(this.mean_diff_max,this.data[s]["mean_diff"]));let t=0,e=0;for(let s=0;s<this.data.length;s+=1){let i=this.data[s]["mean_diff"],a=this.data[s]["name"];this.meanDiff[a]=i,t=Math.max(i,t),e=Math.min(i,e)}},colorScale(){this.$store.diffColor.setColorScale("MeanDiff",this.mean_diff_min,this.mean_diff_max,this.$store.selectedDistributionColorMap,this.$store.selectedColorPoint),this.$parent.$parent.$refs.EnsembleColorMap.update("MeanDiff",this.$store.diffColor,this.mean_diff_min,this.mean_diff_max)},visualize(){let t=this.containerG.selectAll("rect").data(this.nodes);t.transition().duration(this.$store.transitionDuration).attrs({opacity:t=>1,height:t=>t.height}).style("stroke",t=>1).style("fill",(t,e)=>{let s=C["o"](this.$store.diffColor.getColorByValue(this.meanDiff[t.module]));return s})},clear(){}}},Pt=Dt,Et=Object(x["a"])(Pt,Tt,kt,!1,null,null,null),It=Et.exports,Bt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},At=[],Ot={name:"MeanGradients",components:{},data:()=>({strokeWidth:7,id:"rank-diff-gradients",renderZeroLine:{}}),methods:{init(t,e,s){this.nodes=t,this.containerG=e,this.data=s,this.process(),this.colorScale(),this.gradients(),this.visualize()},process(){this.renderZeroLine={},this.rank_min=0,this.rank_max=0,this.mean_min=0,this.mean_max=0,this.mean_diff_min=0,this.mean_diff_max=0;for(let t=0;t<this.data.length;t+=1)("Inclusive"==this.$store.selectedMetric||"Exclusive"==this.$store.selectedMetric)&&(this.rank_min=Math.min(this.rank_min,this.data[t]["hist"]["y_min"]),this.rank_max=Math.max(this.rank_max,this.data[t]["hist"]["y_max"]),this.mean_min=Math.min(this.mean_min,this.data[t]["hist"]["x_min"]),this.mean_max=Math.max(this.mean_max,this.data[t]["hist"]["x_max"]),this.mean_diff_min=Math.min(this.mean_diff_min,this.data[t]["mean_diff"]),this.mean_diff_max=Math.max(this.mean_diff_max,this.data[t]["mean_diff"]))},colorScale(){this.$store.rankDiffColor.setColorScale(this.rank_min,this.rank_max,this.$store.selectedDistributionColorMap,this.$store.selectedColorPoint),this.$parent.$parent.$refs.EnsembleColorMap.update("rankDiff",this.data)},gradients(){let t="hist";for(let e=0;e<this.data.length;e+=1){let s=this.data[e],i=C["u"]("#"+this.id).append("defs");console.log(s),this.diffGradient=i.append("linearGradient").attrs({id:"diff-gradient-"+this.$parent.nidNameMap[s.name],class:"diff-gradient"}),this.diffGradient.attrs({x1:"0%",y1:"0%",x2:"0%",y2:"100%"});let a=s[t]["x"],r=s[t]["y"];for(let t=0;t<a.length;t+=1){let e=(t+t+1)/(2*a.length);if(a[t+1]>0){let e=(t+t+3)/(2*a.length);this.zeroLine(s["name"],e)}this.diffGradient.append("stop").attrs({offset:100*e+"%","stop-color":this.$store.rankDiffColor.getColorByValue(r[t])})}}},clearZeroLine(){C["v"](".zeroLine").remove(),C["v"](".zeroLineText").remove()},zeroLine(t,e){void 0==this.renderZeroLine[t]&&(C["u"]("#ensemble-callsite-"+t.client_idx).append("line").attrs(t=>({class:"zeroLine",x1:0,y1:e*t.height,x2:this.$parent.nodeWidth,y2:e*t.height})).style("opacity",t=>1).style("stroke","#000").style("stroke-width",t=>5),C["u"]("#ensemble-callsite-"+this.$parent.nidNameMap[t]).append("text").attrs({class:"zeroLineText",dy:"0",x:this.$parent.nodeWidth/2-10,y:t=>e*t.height-5}).style("opacity",1).style("font-size","20px").text(t=>0),this.renderZeroLine[t]=!0)},visualize(){let t=this.containerG.selectAll("rect").data(this.nodes);t.transition().duration(this.$store.transitionDuration).attrs({opacity:t=>"intermediate"==t.type?0:1}).style("stroke",t=>{let e="";return"intermediate"==t.type?e=this.$store.color.ensemble:"component-node"==t.type?e=void 0!=this.$store.callsites[this.$store.selectedTargetDataset][t.id]?C["o"](this.$store.color.getColor(t)):this.$store.color.ensemble:"super-node"==t.type&&(e=void 0!=this.$store.modules[this.$store.selectedTargetDataset][t.id]?C["o"](this.$store.color.getColor(t)):this.$store.color.ensemble),e}).style("stroke-width",t=>"intermediate"==t.type?1:this.stroke_width).style("fill",(t,e)=>"url(#diff-gradient-"+t.client_idx+")")},clearGradients(){this.svg.selectAll(".diff-gradient").remove()},clear(){}}},Ht=Ot,Rt=Object(x["a"])(Ht,Bt,At,!1,null,null,null),Ft=Rt.exports,Gt={name:"EnsembleNodes",components:{Mean:_t,ToolTip:bt,MeanGradients:tt,Guides:ot,TargetLine:ut,MeanDiff:It,RankDiff:Ft},data:()=>({currentNodeLevel:{},nodeWidth:50,transitionDuration:500,nodeHeights:{},minHeightForText:15,textTruncForNode:25,id:"ensemble-nodes",graph:null,nidNameMap:{},intermediateColor:"#d9d9d9",drawGuidesMap:{}}),methods:{init(t){this.graph=t,this.containerG=C["u"]("#"+this.id),this.drag=C["e"]().subject(t=>t).on("start",(function(){this.parentNode.appendChild(this)})).on("drag",t=>{C["u"]("node_"+t.client_idx).attr("transform","translate("+(t.x=Math.max(0,Math.min(this.$parent.width-t.dx,C["f"].x)))+","+(t.y=Math.max(0,Math.min(this.$parent.height-t.dy,C["f"].y)))+")"),this.$parent.sankey.relayout()}),this.zoom=C["x"]().scaleExtent([.5,2]).on("zoom",()=>{let t=Math.min(0,Math.min(C["f"].transform.x,this.width*C["f"].transform.k)),e=Math.min(0,Math.min(C["f"].transform.y,this.height*C["f"].transform.k));this.sankeySVG.attr("transform","translate("+[t,e]+")scale("+C["f"].transform.k+")")}),this.ensemble_module_data=this.$store.modules["ensemble"],this.ensemble_callsite_data=this.$store.callsites["ensemble"],this.preVis(),this.visualize()},visualize(){this.rectangle(),this.postVis(),this.setEncoding(this.$store.encoding),this.ensemblePath(),this.text(),this.$store.showTarget&&"Ensemble"===this.$store.selectedMode&&(this.$refs.TargetLine.init(this.graph.nodes),0==this.$store.comparisonMode&&this.targetPath(),this.$refs.Guides.init(this.graph.nodes)),this.$refs.ToolTip.init(this.$parent.id)},preVis(){let t=0;for(let e of this.graph.nodes)this.nidNameMap[e.id]=t,e.client_idx=t,t+=1},postVis(){for(let t of this.graph.nodes)t.svg=this.containerG.select("#callsite-"+t.client_idx)},clearRectangle(){C["v"](".callsite").remove()},setEncoding(t,e){"MEAN"==t?this.$refs.Mean.init(this.graph.nodes,this.containerG):"MEAN_GRADIENTS"==t?this.$refs.MeanGradients.init(this.graph.nodes,this.containerG):"MEAN_DIFF"==t?this.$refs.MeanDiff.init(this.graph.nodes,this.containerG,e):"RANK_DIFF"==t&&this.$refs.RankDiff.init(this.graph.nodes,this.containerG,e)},rectangle(){this.nodesSVG=this.containerG.selectAll(".callsite").data(this.graph.nodes).enter().append("g").attrs({class:"callsite",id:t=>"callsite-"+t.client_idx,transform:t=>`translate(${t.x},${t.y+this.$parent.ySpacing})`,opacity:1}),this.nodesSVG.append("rect").attrs({id:t=>t.id+" callsite-rect"+t.client_idx,class:"callsite-rect",height:t=>t.height,width:this.nodeWidth,"fill-opacity":t=>"intermediate"==t.type?0:1}).style("shape-rendering","crispEdges").on("click",t=>this.click(t)).on("mouseover",t=>this.mouseover(t)).on("mouseout",t=>this.mouseout(t))},click(t){if(event.stopPropagation(),t!==this.$store.selectedNode){this.$store.selectedNode=t,this.$store.selectedModule=t.module,this.$store.selectedName=t.name;const e=this.containerG.select("#callsite-"+t.client_idx);"Ensemble"==this.$store.selectedMode?(this.drawGuidesMap[t.id]||(this.$refs.Guides.visualize(t,"permanent",e),this.drawGuidesMap[t.id]=!0),m.POSTRequest("module_hierarchy",{module:this.$store.selectedModule,name:this.$store.selectedName,datasets:this.$store.selectedDatasets}),E.$emit("ensemble-histogram",{module:this.$store.selectedModule,datasets:this.$store.selectedDatasets}),E.$emit("ensemble-scatterplot",{module:this.$store.selectedModule,dataset1:this.$store.selectedDatasets}),E.$emit("ensemble-select-module",{module:this.$store.selectedModule})):"Single"==this.$store.selectedMode&&(E.$emit("single-histogram",{module:this.$store.selectedModule,groupBy:this.$store.selectedGroupBy,dataset:this.$store.selectedTargetDataset}),E.$emit("single-scatterplot",{module:this.$store.selectedModule,dataset:this.$store.selectedTargetDataset}),E.$emit("single-select-module",{module:this.$store.selectedModule}))}},mouseover(t){this.$refs.ToolTip.visualize(self.graph,t),"Ensemble"==this.$store.selectedMode&&0==this.$store.comparisonMode&&this.$refs.Guides.visualize(t,"temporary")},mouseout(t){this.$refs.ToolTip.clear(),"Ensemble"==this.$store.selectedMode&&0==this.$store.comparisonMode&&(this.$refs.Guides.clear(t,"temporary"),0==this.permanentGuides&&C["v"](".ensemble-edge").style("opacity",1))},targetPath(){this.nodesSVG.append("path").attrs({class:"path",d:t=>{if("intermediate"==t.type)return"m0 0h "+this.nodeWidth+"v "+1*t.targetHeight+"h "+-1*this.nodeWidth},fill:t=>{if("intermediate"==t.type)return this.$store.distributionColor.target},stroke:t=>{if("intermediate"==t.type)return this.intermediateColor}}).style("opacity",.6).style("fill-opacity",0).style("stroke-opacity",0),this.nodesSVG.selectAll(".target-path").data(this.graph.nodes).transition().duration(this.transitionDuration).delay(this.transitionDuration/3).style("fill-opacity",1)},ensemblePath(){this.nodesSVG.append("path").attrs({class:"path",d:t=>{if("intermediate"==t.type)return"m0 0h "+this.nodeWidth+"v "+1*t.height+"h "+-1*this.nodeWidth},fill:t=>{if("intermediate"==t.type)return this.intermediateColor}}).style("opacity",t=>this.$store.showTarget&&0==this.$store.compareAnalysisMode?.5:1).style("fill-opacity",0).style("stroke",(function(t){if("intermediate"==t.type)return this.intermediateColor})).style("stroke-opacity","0.0"),this.nodesSVG.selectAll(".path").data(this.graph.nodes).transition().duration(this.transitionDuration).delay(this.transitionDuration/3).style("fill-opacity",1)},text(){this.nodesSVG.append("text").data(this.graph.nodes).attrs({class:"callsite-text",dy:"0.35em",transform:"rotate(90)",x:"5",y:"-10"}).style("opacity",1).style("fill",t=>{if("MEAN_GRADIENTS"==this.$store.encoding)return"#000";let e=null;"Inclusive"==this.$store.selectedMetric?e=this.$store.runtimeColor.getColor(t,"time (inc)"):"Exclusive"==this.$store.selectedMetric&&(e=this.$store.runtimeColor.getColor(t,"time"));let s=this.$store.runtimeColor.rgbArrayToHex(e);return this.$store.runtimeColor.setContrast(s)}).text(t=>{if("intermediate"!=t.type){if(t.height<this.minHeightForText)return"";var e=V(this.$parent.id,t.id)["width"];if(e<t.height)return t.id;let s=t.height/this.$store.fontSize;return z(t.id,s)}})},clearTargetPath(){C["v"](".target-path").remove()},clearEncoding(t){"MEAN_GRADIENTS"==t?this.$refs.MeanGradients.clear(this.graph.nodes,this.containerG):"MEAN_DIFF"==t?this.$refs.MeanDiff.clear(this.graph.nodes,this.containerG):"RANK_DIFF"==t&&this.$refs.RankDiff.clear(this.graph.nodes,this.containerG)},clear(){C["v"](".callsite").remove(),C["v"](".callsite-text").remove(),C["v"](".path").remove(),C["v"](".targetLines").remove(),this.clearEncoding(),this.clearTargetPath()},comparisonMode(t){console.log("[Comparison] Data:",t),this.clearEncoding("MEAN_GRADIENTS"),C["v"](".target-path").remove(),this.$store.showTarget&&this.$refs.TargetLine.clear(),C["v"](".histogram-bar-target").remove(),C["v"]("#ensemble-edge-target").remove(),C["v"](".legend").remove(),C["v"](".legend-text").remove(),C["v"](".colormap").remove(),this.setEncoding(this.$store.encoding,t)}}},Lt=Gt,qt=Object(x["a"])(Lt,R,F,!1,null,null,null),Wt=qt.exports,Nt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}},[s("ToolTip",{ref:"ToolTip"})],1)},zt=[],Vt={name:"EnsembleEdges",components:{},props:[],data:()=>({transitionDuration:1e3,id:"",offset:4,precision:2}),watch:{},mounted(){this.id="edges"},methods:{init(t){this.graph=t,this.edges=C["u"]("#"+this.id),"Ensemble"==this.$store.selectedMode?(this.initEdges("ensemble"),this.drawEdges("ensemble"),this.$store.showTarget&&0==this.$store.comparisonMode&&(this.initEdges("target"),this.drawEdges("target"))):"Single"==this.$store.selectedMode&&(this.initEdges("single"),this.drawEdges("single"))},initEdges(t){this.edges.selectAll("#edge-"+t).data(this.graph.links).enter().append("path").attrs({class:"edge",id:"edge-"+t}).style("fill",e=>"ensemble"==t?this.$store.distributionColor.ensemble:this.$store.runtimeColor.intermediate).style("opacity",.5).on("mouseover",(function(t){C["u"](this).style("stroke-opacity","1.0")})).sort((function(t,e){return e.dy-t.dy}))},drawPath(t,e,s=0,i=0,a){const r=(t.source_data.x+t.source_data.dx+s).toFixed(this.precision),o=(t.target_data.x-i).toFixed(this.precision),l=C["i"](r,o),n=l(.4).toFixed(this.precision),h=l(.6).toFixed(this.precision),d=(t.source_data.y+this.$parent.ySpacing+t.sy).toFixed(this.precision),c=(t.target_data.y+this.$parent.ySpacing+t.ty).toFixed(this.precision),u=(t.source_data.x+t.source_data.dx+s).toFixed(this.precision),f=(t.target_data.x-i).toFixed(this.precision),m=C["i"](u,f),p=m(.4).toFixed(this.precision),g=m(.6).toFixed(this.precision);let x=(t.source_data.y+this.$parent.ySpacing+t.sy+e).toFixed(this.precision),b=(t.target_data.y+this.$parent.ySpacing+t.ty+e).toFixed(this.precision);const y=(b-c).toFixed(this.precision);return`M${r},${d}C${n},${d} ${h},${c} ${o},${c}  v ${y}C${g},${b} ${p},${x} ${u},${x}`},drawMiddlePath(t,e,s,i,a){let r=t.source_data.x+t.source_data.dx+s,o=t.target_data.x-i,l=C["i"](r,o),n=l(.4),h=l(.6),d=t.source_data.y+this.$parent.ySpacing+t.sy+.5*(t.source_data.height-e),c=t.target_data.y+this.$parent.ySpacing+t.ty+.5*(t.target_data.height-e),u=t.source_data.x+t.source_data.dx+s,f=t.target_data.x-i,m=C["i"](u,f),p=m(.4),g=m(.6),x=0,b=0;x=t.source_data.y+this.$parent.ySpacing+t.sy+e,b=t.target_data.y+this.$parent.ySpacing+t.ty+e;let y=b-c;return`M${r},${d}C${n},${d} ${h},${c} ${o},${c}  v ${y}C${g},${b} ${p},${x} ${u},${x}`},drawEdges(t){this.edges.selectAll("#edge-"+t).data(this.graph.links).attrs({d:e=>{let s=0;return"ensemble"==t||"single"==t?s=e.height:"target"==t&&(s=e.targetHeight),"Top"==this.$store.selectedEdgeAlignment?this.drawPath(e,s,0,0,t):"Middle"==this.$store.selectedEdgeAlignment?this.drawMiddlePath(e,s,0,0,t):void 0},fill:e=>"ensemble"==t?this.$store.distributionColor.ensemble:"target"==t?this.$store.distributionColor.target:"single"==t?this.$store.runtimeColor.intermediate:void 0,stroke:this.$store.runtimeColor.edgeStrokeColor}).on("mouseover",t=>{}).on("mouseout",t=>{})},fadeUnConnected(t){let e=this.graph.links.selectAll(".link");e.filter((function(e){return e.source!==t&&e.target!==t})).transition().duration(500).style("opacity",.05)},clear(){this.edges.selectAll(".edge").remove(),this.edges.selectAll(".edgelabel").remove(),this.edges.selectAll(".edgelabelText").remove()}}},jt=Vt,Yt=Object(x["a"])(jt,Nt,zt,!1,null,null,null),Xt=Yt.exports,Kt=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},Ut=[],Qt=(s("883e"),{name:"MiniHistograms",components:{},props:[],data:()=>({view:{},xScale:[],yScale:[],vals:[],freq:{},data:[],minimapXScale:null,minimapYScale:null,padding:{top:0,left:0,right:0,bottom:10},nodeScale:.99,id:"",nodes:null,edges:null,offset:7,bandWidth:0}),mounted(){this.id="minihistogram-overview"},methods:{init(t,e){this.nodeMap=t.nodeMap,this.nodes=t.nodes,this.links=t.links,this.view=e,this.target_module_data=this.$store.modules[this.$store.selectedTargetDataset],this.target_callsite_data=this.$store.callsites[this.$store.selectedTargetDataset];for(const s of this.nodes){let t=s.module,e=s.name;if("super-node"==s.type&&void 0!=this.target_module_data[t]){let e=this.target_module_data[t][this.$store.selectedMetric]["prop_histograms"][this.$store.selectedProp];this.render(e,t)}else if("component-node"==s.type&&void 0!=this.target_callsite_data[e]){let t=this.target_callsite_data[e][this.$store.selectedMetric]["prop_histograms"][this.$store.selectedProp];this.render(t,e)}}},array_unique(t){return t.filter((function(t,e,s){return s.indexOf(t)===e}))},clear(){this.bandWidth=0,C["v"]("#histobars").remove()},histogram(t,e,s){let i="",a=[],r=[];"ensemble"==s?(i=this.$store.distributionColor.ensemble,a=t["ensemble"].x,r=t["ensemble"].y):"target"!=s&&"single"!=s||("target"==s?i=this.$store.distributionColor.target:"single"==s&&(i=this.$store.runtimeColor.intermediate),a=t["target"].x,r=t["target"].y),"Linear"==this.$store.selectedScale?this.minimapYScale=C["q"]().domain([0,C["k"](r)]).range([this.$parent.ySpacing-10,0]):"Log"==this.$store.selectedScale&&(this.minimapYScale=C["r"]().domain([.1,C["k"](r)]).range([this.$parent.ySpacing,0])),this.minimapXScale=C["p"]().domain(a).rangeRound([0,this.$parent.nodeWidth]),this.bandWidth=this.minimapXScale.bandwidth();for(let o=0;o<r.length;o+=1)C["u"]("#"+this.id).append("rect").attrs({id:"histobars",class:"histogram-bar-"+s,width:()=>this.bandWidth,height:t=>this.$parent.nodeWidth-this.minimapYScale(r[o]),x:t=>e.x+this.minimapXScale(a[o]),y:t=>e.y+this.minimapYScale(r[o])+this.offset,"stroke-width":"0.2px",stroke:"black",fill:i})},render(t,e){let s=this.nodes[this.nodeMap[e]];"Ensemble"==this.$store.selectedMode?(this.histogram(t,s,"ensemble"),this.$store.showTarget&&0==this.$store.comparisonMode&&this.histogram(t,s,"target")):"Single"==this.$store.selectedMode&&this.histogram(t,s,"single")}}}),Zt=Qt,Jt=Object(x["a"])(Zt,Kt,Ut,!1,null,null,null),te=Jt.exports,ee=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:t.id}})},se=[],ie={name:"EnsembleColorMap",components:{},props:[],data:()=>({transitionDuration:1e3,width:230,height:20,colorMin:0,colorMax:0,offset:30,padding:{bottom:30,right:400},id:"ensemble-colormap"}),mounted(){},methods:{init(t){this.color=t,this.colorMin=this.color.getScale().domain()[0],this.colorMax=this.color.getScale().domain()[1],this.containerWidth=this.$store.viewWidth/2,this.containerHeight=this.$store.viewHeight-this.$parent.margin.top-this.$parent.margin.bottom,this.svg=C["u"]("#"+this.$parent.id).append("g").attrs({id:"Colormap"}),this.render()},render(){this._legends(),this._color_map()},_legends(){this.clearLegends(),this.$store.showTarget&&!this.$store.comparisonMode&&"Ensemble"===this.$store.selectedMode&&"SuperGraph"==this.$store.selectedFormat&&this.drawLegend("Target run",this.containerWidth-this.padding.right,this.containerHeight-4*this.padding.bottom,this.$store.distributionColor.target),"Ensemble"==this.$store.selectedMode&&"SuperGraph"==this.$store.selectedFormat&&this.drawLegend("Ensemble of runs",this.containerWidth-this.padding.right,this.containerHeight-3*this.padding.bottom,this.$store.distributionColor.ensemble)},_color_map(){this.clearColorMap();let t="",e=1;"Exclusive"==this.color.type?t="Exc. Runtime colormap":"Inclusive"==this.color.type?t="Inc. Runtime colormap":"MeanGradients"==this.color.type?(t="Distribution colormap",e=2):"MeanDiff"==this.color.type?(t="Mean Difference colormap",e=2):"RankDiff"==this.color.type&&(t="Rank Difference colormap",e=2),"MeanGradients"!==this.color.type?(this.colorMinText=G(this.colorMin),this.colorMaxText=G(this.colorMax)):(this.colorMinText=this.colorMin,this.colorMaxText=this.colorMax),this.drawColorMap(t,this.containerWidth-this.padding.right,this.containerHeight-this.padding.bottom*e)},drawLegend(t,e,s,i){this.svg.append("circle").attrs({r:10,cx:10,cy:10,class:"legend",transform:`translate(${e}, ${s})`,fill:i}),this.svg.append("text").attrs({x:30,y:15,class:"legend-text",transform:`translate(${e}, ${s})`}).text(t).style("font-size",14).style("fill","#444444")},drawColorMap(t,e,s){let i=this.$store.selectedColorPoint,a=(this.colorMax-this.colorMin)/(i-1);for(let r=0;r<i;r+=1){let t=this.colorMin+a*(i-1-r);this.svg.append("rect").attrs({width:this.width/i,height:this.height,x:(i-r-1)*(this.width/i),class:"colormap",transform:`translate(${e}, ${s})`,fill:this.color.getColorByValue(t)})}this.svg.append("text").style("fill","black").style("font-size","14px").attrs({dy:".35em",y:10,x:-165,"text-anchor":"middle",class:"colormap-text",transform:`translate(${e}, ${s})`}).text(t),this.svg.append("text").style("fill","black").style("font-size","14px").attrs({dy:".35em","text-anchor":"middle",y:10,x:-40,class:"colormap-text",transform:`translate(${e}, ${s})`}).text(this.colorMinText),this.svg.append("text").style("fill","black").style("font-size","14px").attrs({dy:".35em","text-anchor":"middle",y:10,x:40,class:"colormap-text",transform:`translate(${e+this.width}, ${s})`}).text(this.colorMaxText)},clearColorMap(){C["v"]("#colormap").remove()},clear(){C["v"](".colormap-text").remove(),C["v"](".colormap").remove()},clearTargetLegends(){C["v"](".target-circle-legend").remove(),C["v"](".target-circle-legend-text").remove()},clearLegends(){C["v"](".legend").remove(),C["v"](".legend-text").remove()},update(t,e,s,i){this.clear(),this.colorMin=s,this.colorMax=i,"MeanDiff"!=t&&"RankDiff"!=t||(this.colorMin=-1*Math.max(Math.abs(s),Math.abs(i)),this.colorMax=1*Math.max(Math.abs(s),Math.abs(i))),this.color=e,this.render()}}},ae=ie,re=Object(x["a"])(ae,ee,se,!1,null,null,null),oe=re.exports;class le{constructor(t=!1){this.vertices={},this.edges={},this.isDirected=t}addVertex(t){return this.vertices[t.getKey()]=t,this}getVertexByKey(t){return this.vertices[t]}getNeighbors(t){return t.getNeighbors()}getAllVertices(){return Object.values(this.vertices)}getAllEdges(){return Object.values(this.edges)}addEdge(t){let e=this.getVertexByKey(t.startVertex.getKey()),s=this.getVertexByKey(t.endVertex.getKey());if(e||(this.addVertex(t.startVertex),e=this.getVertexByKey(t.startVertex.getKey())),s||(this.addVertex(t.endVertex),s=this.getVertexByKey(t.endVertex.getKey())),this.edges[t.getKey()])throw new Error("Edge has already been added before");return this.edges[t.getKey()]=t,this.isDirected?e.addEdge(t):(e.addEdge(t),s.addEdge(t)),this}deleteEdge(t){if(!this.edges[t.getKey()])throw new Error("Edge not found in graph");delete this.edges[t.getKey()];const e=this.getVertexByKey(t.startVertex.getKey()),s=this.getVertexByKey(t.endVertex.getKey());e.deleteEdge(t),s.deleteEdge(t)}findEdge(t,e){const s=this.getVertexByKey(t.getKey());return s?s.findEdge(e):null}getWeight(){return this.getAllEdges().reduce((t,e)=>t+e.weight,0)}reverse(){return this.getAllEdges().forEach(t=>{this.deleteEdge(t),t.reverse(),this.addEdge(t)}),this}getVerticesIndices(){const t={};return this.getAllVertices().forEach((e,s)=>{t[e.getKey()]=s}),t}getAdjacencyMatrix(){const t=this.getAllVertices(),e=this.getVerticesIndices(),s=Array(t.length).fill(null).map(()=>Array(t.length).fill(1/0));return t.forEach((t,i)=>{t.getNeighbors().forEach(a=>{const r=e[a.getKey()];s[i][r]=this.findEdge(t,a).weight})}),s}toString(){return Object.keys(this.vertices).toString()}}class ne{constructor(t,e=null){this.value=t,this.next=e}toString(t){return t?t(this.value):""+this.value}}class he{constructor(t){this.compare=t||he.defaultCompareFunction}static defaultCompareFunction(t,e){return t===e?0:t<e?-1:1}equal(t,e){return 0===this.compare(t,e)}lessThan(t,e){return this.compare(t,e)<0}greaterThan(t,e){return this.compare(t,e)>0}lessThanOrEqual(t,e){return this.lessThan(t,e)||this.equal(t,e)}greaterThanOrEqual(t,e){return this.greaterThan(t,e)||this.equal(t,e)}reverse(){const t=this.compare;this.compare=(e,s)=>t(s,e)}}class de{constructor(t){this.head=null,this.tail=null,this.compare=new he(t)}prepend(t){const e=new ne(t,this.head);return this.head=e,this.tail||(this.tail=e),this}append(t){const e=new ne(t);return this.head?(this.tail.next=e,this.tail=e,this):(this.head=e,this.tail=e,this)}delete(t){if(!this.head)return null;let e=null;while(this.head&&this.compare.equal(this.head.value,t))e=this.head,this.head=this.head.next;let s=this.head;if(null!==s)while(s.next)this.compare.equal(s.next.value,t)?(e=s.next,s.next=s.next.next):s=s.next;return this.compare.equal(this.tail.value,t)&&(this.tail=s),e}find({value:t,callback:e}){if(!this.head)return null;let s=this.head;while(s){if(e&&e(s.value))return s;if(void 0!==t&&this.compare.equal(s.value,t))return s;s=s.next}return null}deleteTail(){const t=this.tail;if(this.head===this.tail)return this.head=null,this.tail=null,t;let e=this.head;while(e.next)e.next.next?e=e.next:e.next=null;return this.tail=e,t}deleteHead(){if(!this.head)return null;const t=this.head;return this.head.next?this.head=this.head.next:(this.head=null,this.tail=null),t}fromArray(t){return t.forEach(t=>this.append(t)),this}toArray(){const t=[];let e=this.head;while(e)t.push(e),e=e.next;return t}toString(t){return this.toArray().map(e=>e.toString(t)).toString()}reverse(){let t=this.head,e=null,s=null;while(t)s=t.next,t.next=e,e=t,t=s;return this.tail=this.head,this.head=e,this}}class ce{constructor(t){if(void 0===t)throw new Error("Graph vertex must have a value");const e=(t,e)=>t.getKey()===e.getKey()?0:t.getKey()<e.getKey()?-1:1;this.value=t,this.edges=new de(e)}addEdge(t){return this.edges.append(t),this}deleteEdge(t){this.edges.delete(t)}getNeighbors(){const t=this.edges.toArray(),e=t=>t.value.startVertex===this?t.value.endVertex:t.value.startVertex;return t.map(e)}getEdges(){return this.edges.toArray().map(t=>t.value)}getDegree(){return this.edges.toArray().length}hasEdge(t){const e=this.edges.find({callback:e=>e===t});return!!e}hasNeighbor(t){const e=this.edges.find({callback:e=>e.startVertex===t||e.endVertex===t});return!!e}findEdge(t){const e=e=>e.startVertex===t||e.endVertex===t,s=this.edges.find({callback:e});return s?s.value:null}getKey(){return this.value}deleteAllEdges(){return this.getEdges().forEach(t=>this.deleteEdge(t)),this}toString(t){return t?t(this.value):""+this.value}}class ue{constructor(t,e,s=0){this.startVertex=t,this.endVertex=e,this.weight=s}getKey(){const t=this.startVertex.getKey(),e=this.endVertex.getKey();return`${t}_${e}`}reverse(){const t=this.startVertex;return this.startVertex=this.endVertex,this.endVertex=t,this}toString(){return this.getKey()}}function fe(t={}){const e=t,s=()=>{},i=(()=>{const t={};return({nextVertex:e})=>!t[e.getKey()]&&(t[e.getKey()]=!0,!0)})();return e.allowTraversal=t.allowTraversal||i,e.enterVertex=t.enterVertex||s,e.leaveVertex=t.leaveVertex||s,e}function me(t,e,s,i){i.enterVertex({currentVertex:e,previousVertex:s}),t.getNeighbors(e).forEach(a=>{i.allowTraversal({previousVertex:s,currentVertex:e,nextVertex:a})&&me(t,a,e,i)}),i.leaveVertex({currentVertex:e,previousVertex:s})}function pe(t,e,s){const i=null;me(t,e,i,fe(s))}function ge(t){let e=null;const s={},i={},a={},r={};t.getAllVertices().forEach(t=>{i[t.getKey()]=t});const o={enterVertex:({currentVertex:t,previousVertex:r})=>{if(a[t.getKey()]){e={};let i=t,a=r;while(a.getKey()!==t.getKey())e[i.getKey()]=a,i=a,a=s[a.getKey()];e[i.getKey()]=a}else a[t.getKey()]=t,delete i[t.getKey()],s[t.getKey()]=r},leaveVertex:({currentVertex:t})=>{r[t.getKey()]=t,delete a[t.getKey()]},allowTraversal:({nextVertex:t})=>!e&&!r[t.getKey()]};while(Object.keys(i).length){const e=Object.keys(i)[0],s=i[e];console.debug(e,s),pe(t,s,o)}return[e,a,r,i]}var xe={name:"SuperGraph",components:{EnsembleNodes:Wt,EnsembleEdges:Xt,MiniHistograms:te,EnsembleColorMap:oe},data:()=>({graph:null,id:"ensemble-supergraph-overview",dashboardID:"ensemble-supergraph-dashboard",nodeWidth:50,nodeScale:1,ySpacing:60,levelSpacing:50,margin:{top:10,right:10,bottom:20,left:10},width:null,height:null,treeHeight:null,data:null,message:"Summary Graph View",sankeyWidth:0,sankeyHeight:0,summaryChip:"SuperGraph",selectedMetric:"",existingIntermediateNodes:{}}),mounted(){this.id="ensemble-supergraph-overview";let t=this;E.$on("clear_summary_view",(function(){console.log("Clearing Summary view"),t.clear()})),E.$on("reveal-callsite",(function(){t.clear()})),E.$on("show_target_auxiliary",e=>{t.$refs.EnsembleNodes.$refs.TargetLine.clear(),t.$refs.MiniHistograms.clear()}),this.selectedMetric=this.$store.selectedMetric},methods:{async fetchData(){"Single"==this.$store.selectedMode?(this.data=await m.POSTRequest("single_supergraph",{dataset:this.$store.selectedTargetDataset,groupBy:"module"}),console.debug("[/single_supergraph]",this.data)):"Ensemble"==this.$store.selectedMode&&(this.data=await m.POSTRequest("ensemble_supergraph",{datasets:this.$store.selectedDatasets,groupBy:"module"}),console.debug("[/ensemble_supergraph]",this.data)),this.data=this._add_node_map(this.data),this.data.graph=this._construct_super_graph(this.data);ge(this.data.graph);for(let t=0;t<this.data.links.length;t+=1){let e=this.data.links[t],s=e["source"],i=e["target"],a=e["weight"];console.debug("============================================="),console.debug("[Ensemble SuperGraph] Source Name :",s),console.debug("[Ensemble SuperGraph] Target Name :",i),console.debug("[Ensemble SuperGraph] Weight: ",a)}this.render()},async init(){await this.fetchData(),this.width=5*this.$store.viewWidth,this.height=1*this.$store.viewHeight,this.sankeySVG=C["u"]("#"+this.id).attrs({width:this.width,height:this.height,top:this.toolbarHeight});let t=this.sankeySVG.select("#container");var e=C["x"]().on("zoom",(function(){t.attrs({transform:C["f"].transform,scale:C["f"].scale})}));this.sankeySVG.call(e)},_debug_data(t){console.debug("Data :",t);for(let e=0;e<t.nodes.length;e+=1)console.debug("Node name: ",t.nodes[e].id),console.debug("Time (inc): ",t.nodes[e]["time (inc)"]),console.debug("Time: ",t.nodes[e]["time"]);for(let e=0;e<t.links.length;e+=1)console.debug("Source: ",t.links[e].source),console.debug("Target: ",t.links[e].target),console.debug("Weight: ",t.links[e].weight)},clear(){this.$refs.EnsembleNodes.clear(),this.$refs.EnsembleEdges.clear(),this.$refs.MiniHistograms.clear(),this.$refs.EnsembleColorMap.clear()},render(){this.sankeyWidth=.7*this.$store.viewWidth,this.sankeyHeight=.9*this.$store.viewHeight-this.margin.top-this.margin.bottom,this._init_sankey(this.data);let t=this._add_intermediate(this.data.nodes,this.data.links);this.data.nodes=t["nodes"],this.data.links=t["links"],this._init_sankey(),this.$store.graph=this.data,this.$refs.EnsembleColorMap.init(this.$store.runtimeColor),"Ensemble"==this.$store.selectedMode&&this.$refs.EnsembleColorMap.init(this.$store.distributionColor),this.$refs.EnsembleNodes.init(this.$store.graph,this.view),this.$refs.EnsembleEdges.init(this.$store.graph,this.view),this.$refs.MiniHistograms.init(this.$store.graph,this.view)},_add_node_map(t){let e={},s=0;for(const i of t.nodes)"super-node"==i.type?e[i.module]=s:"component-node"==i.type&&(e[i.name]=s),console.debug(`[Supergraph] Assigning ${i.id} with index ${s}`),s+=1;return t.nodeMap=e,t},_construct_super_graph(t){let e=new le(!0);for(let s=0;s<t.links.length;s+=1){let i=new ce(t.links[s].source),a=new ce(t.links[s].target),r=t.links[s].weight,o=new ue(i,a,r);e.addEdge(o)}return e},_init_sankey(){this.sankey=H().nodeWidth(this.nodeWidth).nodePadding(this.ySpacing).size([this.sankeyWidth,this.sankeyHeight]).levelSpacing(this.levelSpacing).maxLevel(this.data.maxLevel).setMinNodeScale(this.nodeScale).targetDataset(this.$store.selectedTargetDataset).store(this.$store),this.sankey.link(),this.sankey.nodes(this.data.nodes).links(this.data.links).layout(32)},_add_intermediate(t,e){t.slice();const s=e.slice();let i=[],a={};for(let r=0;r<s.length;r++){const o=s[r].source,l=s[r].target;console.debug("[SuperGraph] Source Name",o),console.debug("[SuperGraph] Target Name",l),console.debug("[SuperGraph] This edge: ",s[r]);let n=s[r].source_data,h=s[r].target_data;console.debug(`[SuperGraph] Source Node: ${n}, Level: ${n.level}`),console.debug(`[Ensemble SuperGraph] Target Node: ${h} Level: ${h.level}`);const d=n.level,c=h.level,u=c-d;console.debug(d,c),console.debug("[SuperGraph] Number of levels to shift: "+u);let f=this.$store.selectedTargetDataset,m=!0;for(let p=u;p>1;p--){const d=t.length;let c={},g=n["actual_time"],x=n["max_flow"];void 0==this.existingIntermediateNodes[h.id]?(c={id:"intermediate_"+h.id,level:p-1,value:s[r].weight,targetValue:s[r].targetWeight,height:s[r].height,targetHeight:s[r].targetHeight,module:h.module,type:"intermediate",count:1},c[f]=h[f],m&&(t.push(c),m=!1),this.existingIntermediateNodes[h.id]=c):(void 0==a[s[r].source]?(a[s[r].source]=0,this.existingIntermediateNodes[h.id].value+=s[r].weight):a[s[r].source]+=1,c=this.existingIntermediateNodes[h.id]);const b={type:"source_intermediate",source:n.id,target:c.id,weight:s[r].weight,targetWeight:s[r].targetWeight,actual_time:g,max_flow:x};e.push(b),console.debug("[SuperGraph] Adding intermediate source edge: "+b),p==u&&(e[r].original_target=l),e[r].target_data=t[d],console.debug("[SuperGraph] Updating this edge: "+e[r]);const y={type:"target_intermediate",source:c.id,target:h.id,actual_time:g,weight:s[r].weight,targetWeight:s[r].targetWeight,max_flow:x};e.push(y),console.log("[SuperGraph] Adding intermediate target edge: "+y),p==u&&(e[r].original_target=l),e[r].target_data=t[d],console.debug("[SuperGraph] Updating this edge: "+e[r]),i.push({source:o,target:l})}}console.debug(`[SuperGraph] Removing ${i.length} edges`);for(let r=0;r<i.length;r+=1){let t=i[r];console.debug("[SuperGraph] Removing edge: "+t);for(let s=0;s<e.length;s+=1){let i=e[s];t.source==i.source&&t.target==i.target&&e.splice(s,1)}}return{nodes:t,links:e}},activateCompareMode(t){this.$refs.EnsembleNodes.comparisonMode(t)}}},be=xe,ye=(s("8985"),Object(x["a"])(be,I,B,!1,null,"595c6e5c",null)),ve=ye.exports,$e=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("svg",{attrs:{id:t.id}},[s("g",{attrs:{id:"container"}}),s("ColorMap",{ref:"ColorMap"})],1)},Ce=[],Me={name:"CCT",components:{ColorMap:oe},data:()=>({id:"cct-overview",margin:{top:0,right:0,bottom:0,left:0},width:null,height:null,zoom:null,HAS_DATA_COLUMNS:["module"],has_data_map:{}}),sockets:{single_cct(t){console.debug("Single CCT data: ",t),this.render(t)},ensemble_cct(t){console.debug("Ensemble CCT data: ",t),this.render(t)}},methods:{init(){"Single"===this.$store.selectedMode?this.$socket.emit("single_cct",{dataset:this.$store.selectedTargetDataset,functionsInCCT:this.$store.selectedFunctionsInCCT}):"Ensemble"===this.$store.selectedMode&&this.$socket.emit("ensemble_cct",{datasets:this.$store.selectedTargetDataset,functionsInCCT:this.$store.selectedFunctionsInCCT}),this.width=this.$store.viewWidth-this.margin.left-this.margin.right,this.height=this.$store.viewHeight-this.margin.bottom-this.margin.top,this.svg=C["u"]("#"+this.id).attrs({width:this.width,height:this.height}),this.g=this.createGraph()},createGraph(){const t=new St.a.graphlib.Graph({directed:!0,multigraph:!1,compound:!0});return t.setGraph({rankDir:"TD",rankSep:50,marginx:30,marginy:30}),t},setCallsiteName(t){return void 0==t["name"]?t["id"]:t["name"]},setCallsiteColor(t){let e="";"Inclusive"==this.$store.selectedMetric?e=this.$store.runtimeColor.getColor(t,"time (inc)"):"Exclusive"==this.$store.selectedMetric&&(e=this.$store.runtimeColor.getColor(t,"time"));const s=this.$store.runtimeColor.rgbArrayToHex(e),i=this.$store.runtimeColor.setContrast(s);return{node:s,text:i}},setCallsiteHTML(t,e){let s=t["name"],i="#fff"===e["text"]?'<div class="white-text"><span>'+s+"</span>":'<div class="black-text"><span>'+s+"</span>";if(this.has_data_map["module"]){let e=t["module"];i=i+'<br/><span class="description"><b>Module :</b> '+e+"</span> </div>"}return i},nodes(t){t.forEach((t,e)=>{const s=this.setCallsiteName(t),i=this.setCallsiteColor(t),a=this.setCallsiteHTML(t,i),r={...t,class:"cct-node",labelType:"html",label:a,fillColor:i["node"]};this.g.setNode(s,r)});let e=this;this.g.nodes().forEach((function(t){let s=e.g.node(t);void 0!=s&&(s.style="fill:"+s.fillColor,s.rx=s.ry=4,s.id=s.name)}))},edges(t){for(let s=0;s<t.length;s+=1){let e="";e=1!=t[s]["count"]?""+t[s]["count"]:"",this.g.setEdge(t[s]["source"],t[s]["target"],{label:e,arrowhead:"vee"})}let e=this;this.g.edges().forEach(t=>{var s=e.g.edge(t);s.id="cct-edge"})},node_click_action(t){console.debug("click node : "+t);const e="fill: rgba(255,255,255, 0); stroke: #d5d5d5; stroke-width: 1.5px;",s="fill: #c5c5c5; stroke: #c5c5c5; stroke-width:4px;",i="fill: rgba(255,255,255, 0); stroke: #800080; stroke-width: 4px;",a="fill: #800080; stroke: #800080; stroke-width:1.5px;",r="fill: rgba(255,255,255, 0); stroke: #32CD32; stroke-width: 4px;",o="fill: #32CD32; stroke: #32CD32; stroke-width:1.5px;";let l=this.g.node(t).class,n=this;-1!=l.indexOf("highLight")?(this.g.node(t).class=l.toString().replace("highLight"," ").trim(),this.g.edges().forEach((function(t,i,a){let r=n.g.edge(t);r.style=e,r.arrowhead="vee",r.arrowheadStyle=s}))):(this.g.nodes().forEach((function(t){let e=n.g.node(t);l=e.class,"cct-node"!==l&&(e.class=l.replace("highLight"," ").trim())})),this.g.edges().forEach((function(l,h,d){let c=n.g.edge(l);c.style=e,c.arrowhead="vee",c.arrowheadStyle=s,l.v==t?(c.style=i,c.arrowhead="vee",c.arrowheadStyle=a):l.w==t&&(c.style=r,c.arrowhead="vee",c.arrowheadStyle=o)})),this.g.node(t).class+=" highLight")},zoomTranslate(){const t=this.g.graph().width+80,e=this.g.graph().height+40,s=parseInt(this.svg.style("width").replace(/px/,"")),i=parseInt(this.svg.style("height").replace(/px/,""));let a=Math.min(s/t,i/e);a>1.4&&(a-=.1);const r=[.5*(s-t*a),.5*(i-e*a)];this.svg.call(this.zoom.transform,C["y"].translate(r[0],r[1]).scale(a))},setHasDataMap(){this.has_data_map={};for(let t=0;t<this.HAS_DATA_COLUMNS.length;t+=1){let e=this.HAS_DATA_COLUMNS[t];Object.keys(this.data["nodes"][0]).includes(e)?this.has_data_map[e]=!0:this.has_data_map[e]=!1}},render(t){this.data=t,this.setHasDataMap(),this.nodes(this.data.nodes),this.edges(this.data.links);const e=this.svg.select("#container"),s=new St.a.render;this.zoom=C["x"]().on("zoom",(function(){e.attr("transform",C["f"].transform)})),this.svg.call(this.zoom),s(e,this.g),this.zoomTranslate();let i=this;this.svg.selectAll("g.node").on("click",(function(t){i.node_click_action(t),s(e,i.g),i.zoomTranslate()})),this.$refs.ColorMap.init(this.$store.runtimeColor)},clear(){C["v"]("#cct-node").remove(),C["v"]("#cct-edge").remove(),this.$refs.ColorMap.clear()}}},_e=Me,Te=(s("acf7"),Object(x["a"])(_e,$e,Ce,!1,null,"1976c798",null)),ke=Te.exports,we=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")])],1),s("span",{staticClass:"component-info"},[t._v(" Correlation : "+t._s(t.corr_coef)+" ")]),s("svg",{attrs:{id:t.svgID}}),s("ToolTip",{ref:"ToolTip"})],1)},Se=[],De=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip_scatterplot"}})},Pe=[],Ee={name:"ToolTip",components:{},props:[],data:()=>({id:"",textCount:0,textxOffset:20,textyOffset:20,textPadding:13,offset:10,fontSize:12}),sockets:{tooltip(t){this.render(t)}},watch:{},mounted(){},methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+this.id).append("svg").attr("class","toolTipSVG"),this.toolTipG=this.toolTipDiv.append("g"),this.height=document.getElementById(this.id).clientHeight/10,this.halfWidth=document.getElementById(this.id).clientWidth/2},render(t,e){this.clear(),this.width=t.length*this.fontSize+10*this.fontSize;var s=C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipG.attr("height",s(10)+"px"),this.toolTipRect=this.toolTipG.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:this.height}).attrs({x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth-25?this.mousePosX-this.width+"px":this.mousePosX+"px",y:()=>this.mousePosY+"px"}),this.node=e,this.data=t,this.processes()},addText(t){this.textCount+=1,this.toolTipText=this.toolTipG.append("text").style("font-family","sans-serif").style("font-size",this.fontSize).attrs({class:"toolTipContent",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth-25?this.mousePosX-this.width+this.offset+"px":this.mousePosX+this.offset+"px",y:()=>this.mousePosY+2*this.offset+"px"}).text(t)},processes(){this.addText("Processes (MPI ranks): "+this.data)},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},Ie=Ee,Be=Object(x["a"])(Ie,De,Pe,!1,null,null,null),Ae=Be.exports,Oe={name:"SingleScatterplot",components:{ToolTip:Ae},data:()=>({padding:{top:10,right:10,bottom:10,left:15},xData:[],yData:[],xMin:0,xMax:0,yMin:0,yMax:0,firstRender:!0,boxHeight:0,boxWidth:0,id:"scatterplot-view",svgID:"scatterplot-view-svg",message:"MPI Runtime Scatterplot",boxOffset:20,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹",paddingFactor:3.5,x_max_exponent:0,y_max_exponent:0,corr_coef:0}),mounted(){let t=this;E.$on("single-scatterplot",(function(e){t.clear(),console.debug("Single Scatterplot: ",e["module"]),t.render(e["module"])}))},methods:{init(){this.width=.25*window.innerWidth,this.height=.45*this.$store.viewHeight,this.boxWidth=this.width-this.padding.right-this.padding.left,this.boxHeight=this.height-this.padding.top-this.padding.bottom,this.svg=C["u"]("#"+this.svgID).attr("width",this.boxWidth).attr("height",this.boxHeight-this.padding.top).attr("transform","translate("+this.padding.left+","+this.padding.top+")"),this.xAxisHeight=this.boxWidth-4*this.padding.left,this.yAxisHeight=this.boxHeight-4*this.padding.left,E.$emit("single-scatterplot",{module:Object.keys(this.$store.modules[this.$store.selectedTargetDataset])[0],dataset:this.$store.selectedTargetDataset})},render(t){this.firstRender||this.clear(),this.firstRender=!1,this.selectedModule=t;let e=this.process();this.xMin=e[0],this.yMin=e[1],this.xMax=e[2],this.yMax=e[3],this.xArray=e[4],this.yArray=e[5],this.xScale=C["q"]().domain([this.xMin,this.xMax]).range([0,this.xAxisHeight]),this.yScale=C["q"]().domain([this.yMin,this.yMax]).range([this.yAxisHeight,this.padding.top]),this.regression=this.leastSquares(this.xArray,this.yArray),this.corr_coef=Math.round(100*this.regression["corr_coef"])/100,this.xAxis(),this.yAxis(),this.dots()},process(){let t=this.$store.modules[this.$store.selectedTargetDataset][this.$store.selectedModule],e=t["Inclusive"]["data"],s=t["Exclusive"]["data"],i=[],a=[],r=0,o=0,l=0,n=0;for(const[h,d]of Object.entries(s))o=Math.min(o,d),l=Math.max(l,d),i.push(d);for(const[h,d]of Object.entries(e))r=Math.min(r,d),n=Math.max(n,d),a.push(d);return[o,r,l,n,i,a]},leastSquares(t,e){for(var s=t.length,i=0,a=0,r=0,o=0,l=0;l<s;l++)i+=t[l],a+=e[l];i/=s,a/=s;var n=0,h=0;for(l=0;l<t.length;l++)n=t[l]-i,h=e[l]-a,r+=n*h,o+=n*n;var d=r/o,c=a-d*i;let u=[];for(l=0;l<t.length;l++)u.push(c+t[l]*d);var f=[],m=[],p=[];for(let k=0;k<s;k++)f.push(t[k]*e[k]),m.push(t[k]*t[k]),p.push(e[k]*e[k]);var g=0,x=0,b=0,y=0,v=0;for(let k=0;k<s;k++)g+=t[k],x+=e[k],b+=f[k],y+=m[k],v+=p[k];var $=s*b-g*x,C=s*y-g*g,M=s*v-x*x,_=Math.sqrt(C*M);let T=$/_;return{y_res:u,corr_coef:T}},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") Exclusive Runtime (μs)";this.svg.append("text").attr("class","axis-label").attr("x",this.boxWidth-this.padding.right).attr("y",this.yAxisHeight+3*this.padding.top).style("font-size","12px").style("text-anchor","end").text(e)},xAxis(){let t=this;this.addxAxisLabel();const e=C["b"](this.xScale).ticks(10).tickFormat((e,s)=>{let i=W(e,t.x_max_exponent);return""+i[0]});let s=this.svg.append("g").attrs({class:"axis",id:"xAxis",transform:"translate("+this.paddingFactor*this.padding.left+","+this.yAxisHeight+")"}).call(e);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px"),s.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},addyAxisLabel(){let t=this.yScale.domain()[1];this.y_max_exponent=N(t);this.superscript[this.y_max_exponent];let e="(e+"+this.y_max_exponent+") Inclusive Runtime (μs)";this.svg.append("text").attrs({class:"axis-label",transform:"rotate(-90)",x:-this.padding.top,y:.5*this.padding.left}).style("text-anchor","end").style("font-size","12px").text(e)},yAxis(){let t=this;this.addyAxisLabel();let e=C["c"](this.yScale).ticks(10).tickFormat((e,s)=>{let i=W(e,t.y_max_exponent);return""+i[0]});var s=this.svg.append("g").attr("id","yAxis").attr("class","axis").attr("transform","translate("+this.paddingFactor*this.padding.left+", 0)").call(e);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.5),s.selectAll("text").style("font-size","14px").style("font-family","sans-serif").style("font-weight","lighter")},trendline(){let t=this,e=C["j"]().x((function(e,s){return t.xScale(t.xArray[s])})).y((function(e,s){return t.yScale(t.yArray[s])}));this.svg.append("g").attr("class","trend-line").append("path").datum(this.regression["y_res"]).attr("d",e).style("stroke",this.$store.color.intermediate).style("stroke-width","1px").style("opacity",.5).attr("transform","translate("+this.paddingFactor*this.padding.left+", 0)")},dots(){let t=this;this.svg.selectAll(".dot").data(this.yArray).enter().append("circle").attr("class","dot").attr("r",5).attr("cx",(function(e,s){return t.xScale(t.xArray[s])+3*t.padding.left})).attr("cy",(function(e,s){return t.yScale(t.yArray[s])})).style("fill",this.$store.runtimeColor.intermediate).style("stroke","#202020").style("stroke-width",.5)},correlationText(){let t=this,e=C["g"]("0.2f");this.svg.append("g").append("text").attr("class","text").text("corr-coef: "+e(this.regression["corr_coef"])).attr("x",(function(e){return t.boxWidth-t.width/3})).attr("y",(function(t){return 20}))},clear(){C["v"](".dot").remove(),C["v"](".axis").remove(),C["v"](".trend-line").remove(),this.svg.selectAll("text").remove()}}},He=Oe,Re=Object(x["a"])(He,we,Se,!1,null,null,null),Fe=Re.exports,Ge=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")])],1),s("svg",{attrs:{id:t.svgID}}),s("ToolTip",{ref:"ToolTip"})],1)},Le=[],qe=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip-histogram"}})},We=[],Ne={name:"ToolTip",components:{},props:[],data:()=>({id:"single-histogram-tooltip",textCount:0,textxOffset:20,textyOffset:20,textPadding:13,offset:10,fontSize:12,containerHeight:50,containerWidth:200}),sockets:{tooltip(t){this.render(t)}},watch:{},mounted(){},methods:{init(t){this.parentID=t,this.toolTipDiv=C["u"]("#"+this.parentID).append("svg").attr("class","toolTipSVG"),this.toolTipG=this.toolTipDiv.append("g"),this.height=document.getElementById(this.parentID).clientHeight,this.halfWidth=document.getElementById(this.parentID).clientWidth/2},render(t,e){this.clear(),this.width=t.length*this.fontSize+10*this.fontSize;const s=C["q"]().domain([2,11]).range([this.containerWidth,this.containerHeight]);this.mousePos=C["m"](C["u"]("#"+this.parentID).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipG.attr("height",s(10)+"px"),this.node=e,this.data=t,this.addText("Processes (MPI ranks):"+this.data)},optimizeTextHeight(t){const e=Y(t),s=e.width/this.containerWidth;return{width:this.containerWidth,height:s*e.height}},addText(t){const e=this.optimizeTextHeight(t);this.toolTipRect=this.toolTipG.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:e.width+20,height:e.height}).attrs({x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.parentID).clientWidth-25?this.mousePosX-this.containerWidth+"px":this.mousePosX+"px",y:()=>this.mousePosY+"px"}).style("z-index",2),this.textCount+=1,this.toolTipText=this.toolTipG.append("text").style("font-family","sans-serif").style("font-size",this.fontSize).attrs({class:"toolTipContent",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.parentID).clientWidth-25?this.mousePosX-this.containerWidth+this.offset+"px":this.mousePosX+this.offset+"px",y:()=>this.mousePosY+2*this.offset+"px"}).style("z-index",2).text(t).call(X,e.width)},processes(){},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},ze=Ne,Ve=Object(x["a"])(ze,qe,We,!1,null,null,null),je=Ve.exports,Ye={name:"SingleHistogram",components:{ToolTip:je},props:[],data:()=>({data:[],width:null,height:null,histogramHeight:null,histogramWidth:null,padding:{top:10,right:10,bottom:10,left:15},dataset_index:[],id:"single-histogram-view",svgID:"single-histogram-view-svg",firstRender:!0,xVals:[],freq:[],selectedColorBy:"Inclusive",MPIcount:0,message:"MPI Runtime Distribution",paddingFactor:3.5,boxOffset:20,x_max_exponent:0,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹"}),mounted(){let t=this;E.$on("single-histogram",(function(e){console.log("Single histogram: ",e["module"]),t.visualize(e["module"])}))},methods:{init(){this.width=.25*window.innerWidth,this.height=.5*this.$store.viewHeight,this.boxWidth=this.width-this.padding.right-this.padding.left,this.boxHeight=this.height-this.padding.top-this.padding.bottom,this.histogramOffset=Math.floor(this.boxHeight/4),this.histogramHeight=this.boxHeight-this.histogramOffset,this.histogramWidth=this.boxWidth,this.rankScaleHeight=this.boxHeight-this.histogramHeight,this.rankScaleWidth=this.histogramWidth,this.xAxisHeight=this.histogramWidth-(this.paddingFactor-1.5)*this.padding.left,this.yAxisHeight=this.histogramHeight-(this.paddingFactor-1.5)*this.padding.left,this.svg=C["u"]("#"+this.svgID).attrs({width:this.boxWidth,height:this.boxHeight,transform:"translate("+this.padding.left+","+this.padding.top+")"}),E.$emit("single-histogram",{module:Object.keys(this.$store.modules[this.$store.selectedTargetDataset])[0],groupBy:this.$store.selectedGroupBy,dataset:this.$store.selectedTargetDataset})},setupScale(t){let e=this.$store.modules[this.$store.selectedTargetDataset][t],s=e[this.$store.selectedMetric]["prop_histograms"]["rank"]["target"],i=e[this.$store.selectedMetric]["data"],a=this.dataProcess(s,i);this.xVals=a[0],this.freq=a[1],this.axis_x=a[2],this.binContainsProcID=a[3],this.logScaleBool=!1,this.xScale=C["p"]().domain(this.xVals).range([this.paddingFactor*this.padding.left,this.xAxisHeight]),"Linear"==this.$store.selectedScale?(this.yScale=C["q"]().domain([0,C["k"](this.freq)]).range([this.yAxisHeight,this.padding.top]),this.logScaleBool=!1):"Log"==this.$store.selectedScale&&(this.yScale=C["r"]().domain([1,C["k"](this.freq)]).range([this.yAxisHeight,this.padding.top]),this.logScaleBool=!0)},clear(){C["v"](".single-histogram-bar").remove(),C["u"](".x-axis").remove(),C["u"](".y-axis").remove(),C["v"](".histogram-axis-label").remove(),C["v"](".binRank").remove(),C["v"](".lineRank").remove(),C["v"](".brush").remove(),C["v"](".tick").remove(),this.$refs.ToolTip.clear()},visualize(t){this.clear(),this.setupScale(t),this.bars(),this.xAxis(),this.yAxis(),this.rankLineScale(),this.brushes(),this.$refs.ToolTip.init(this.svgID)},array_unique(t){return t.filter((function(t,e,s){return s.indexOf(t)===e}))},dataProcess(t,e){let s=[],i={},a=t["x_min"],r=t["x_max"];const o=(r-a)/t["x"].length;for(let l=0;l<t["x"].length;l++)s.push(a+l*o);return e.forEach((t,e)=>{let s=Math.floor((t-a)/o);s>=this.$store.selectedMPIBinCount&&(s=this.$store.selectedMPIBinCount-1),null==i[s]&&(i[s]=[]),i[s].push(e)}),[t["x"],t["y"],s,i]},removeDuplicates(t){var e={};return t.filter((function(t){return!e.hasOwnProperty(t)&&(e[t]=!0)}))},groupProcess(t){const e=t.slice();let s=0,i="[ ";const a=[];let r=!0;function o(t,i){t+1==e[i]?(t=e[i],i+=1,o(t,i)):l(s,i-1)}function l(t,i){n(t,i),i++,s=i;const a=e[i];i<e.length&&o(a,i+1)}function n(t,s){let o="";const l=[];t!=s?(o=`[${e[t]}-${e[s]}]`,l.push(e[t]),l.push(e[s])):(o=`[${e[t]}]`,l.push(e[t])),r||(i+=", "),i+=o,a.push(l),r=!1}return o(e[0],1),i+=" ]",{string:i,array:a}},sanitizeGroupProc(t){return t.replace(/\[/g,"").replace(/]/g,"")},bars(){let t=this;this.svg.selectAll(".single-histogram-bar").data(this.freq).enter().append("rect").attrs({class:"single-histogram-bar",x:(t,e)=>this.xScale(this.xVals[e]),y:(t,e)=>this.yScale(t),width:this.xScale.bandwidth(),height:t=>Math.abs(this.yAxisHeight-this.yScale(t)),fill:this.$store.runtimeColor.intermediate,opacity:1,"stroke-width":"0.2px",stroke:"#202020"}).style("z-index",1).on("click",(function(e,s){C["u"](this).attr("fill",t.$store.runtimeColor.highlight),C["v"](".lineRank_"+s).style("fill","orange").style("fill-opacity",1);let i=t.groupProcess(t.binContainsProcID[s]).string;i=t.sanitizeGroupProc(i),t.$refs.ToolTip.render(i,e)})).on("mouseover",(function(e,s){C["u"](this).attr("fill",t.$store.runtimeColor.highlight),C["v"](".lineRank_"+s).style("fill","orange").style("fill-opacity",1);let i=t.groupProcess(t.binContainsProcID[s]).string;i=t.sanitizeGroupProc(i),t.$refs.ToolTip.render(i,e)})).on("mouseout",(function(e,s){C["u"](this).attr("fill",t.$store.runtimeColor.intermediate),C["v"](".lineRank_"+s).style("fill","grey").style("fill-opacity",.4),t.$refs.ToolTip.clear()}))},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") "+this.$store.selectedMetric+" Runtime (μs)";this.svg.append("text").attrs({class:"histogram-axis-label",x:this.histogramWidth-this.padding.left,y:this.yAxisHeight+3*this.padding.top}).style("font-size","12px").style("text-anchor","end").text(e)},xAxis(){this.addxAxisLabel();const t=C["b"](this.xScale).ticks(10).tickFormat((t,e)=>{if(e%3==0){let t=W(this.xVals[e],self.x_max_exponent);return""+t[0]}}),e=this.svg.append("g").attrs({class:"x-axis",transform:"translate(0,"+this.yAxisHeight+")"}).call(t);e.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.5),e.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},yAxis(){const t=C["c"](this.yScale).ticks(10).tickFormat((t,e)=>{if(t%1==0)return t});this.svg.append("text").attrs({transform:"rotate(-90)",class:"histogram-axis-label",x:-this.padding.top,y:this.padding.left}).style("font-size","12px").style("text-anchor","end").text("Number of Processes");const e=this.svg.append("g").attrs({class:"y-axis",transform:"translate("+this.paddingFactor*this.padding.left+", 0)"}).call(t);e.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.2),e.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},rankLineScale(){let t=this.$store.modules[this.$store.selectedTargetDataset][this.$store.selectedModule][this.$store.selectedMetric].data.length;this.ranklinescale=C["q"]().domain([0,t]).range([this.paddingFactor*this.padding.left,this.xAxisHeight]),this.freq.forEach((e,s)=>{const i=this.binContainsProcID[s];if(i){const e=this.svg.append("g").attr("class","binRank bin_"+s).attr("data-name",s);i.sort((t,e)=>t-e);const a=this.groupProcess(i).array,r=this.xScale.bandwidth(),o=r/t,l=this.xScale(this.xVals[s]);let n=0;a.forEach(t=>{let i=0,a=0;1==t.length?(i=t[0],a=i+1):(i=t[0],a=t[1]+1);let r=n+l+o,h=n+(a-i+1)*o+l,d=this.ranklinescale(i),c=this.ranklinescale(a),u=this.boxHeight-this.histogramOffset,f=this.boxHeight;n+=(a-i+1)*o;const m="M"+r+" "+u+"L "+h+" "+u+"L "+c+" "+f+"L "+d+" "+f;e.append("path").attr("d",m).attr("class","lineRank lineRank_"+s).style("fill",t=>"grey").style("fill-opacity",.4).attr("transform",`translate(0,${-3*this.padding.bottom})`)})}});const e=C["b"](this.ranklinescale).ticks(10).tickFormat((t,e)=>{if(t%1==0)return t}),s=this.svg.append("g").attr("class","histogram-rank-axis").attr("id","rankAxis").attr("transform",`translate(0,${this.boxHeight-3*this.padding.bottom})`).call(e);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.5),s.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},brushes(){this.brushdata=[],this.brushSVG=this.svg.append("svg"),this.brush=C["d"]().extent([[this.paddingFactor*this.padding.left,this.yAxisHeight],[this.paddingFactor*this.padding.left+this.xAxisHeight-this.paddingFactor*this.padding.left,this.yAxisHeight+this.rankScaleHeight]]).on("brush",this.brushing).on("end",this.brushend);let t=0;this.brushdata.push({id:t,brush:this.brush}),this.brushSVG.selectAll(".brush").data(this.brushdata).enter().insert("g",".brush").attr("class","brush").call(this.brush)},brushing(){const t=C["q"]().domain([this.xScale.domain()[0],this.xScale.domain()[this.xScale.domain().length-1]]).range(this.xScale.range());let e=C["f"].selection.map(t.invert)[0],s=C["f"].selection.map(t.invert)[1],i=this.xScale.domain().length,a=this.xScale.domain()[0],r=this.xScale.domain()[this.xScale.domain().length-1];this.localBrushStart=Math.floor((e-a)/(r-a)*i),this.localBrushEnd=Math.ceil((s-a)/(r-a)*i),this.svg.selectAll(".binRank").attr("opacity",.5);for(let o=this.localBrushStart;o<this.localBrushEnd;o++)this.svg.selectAll(".bin_"+o).attr("opacity",1);this.localBrushStart==this.localBrushEnd&&this.svg.selectAll(".binRank").attr("opacity",1)},brushend(){let t=this;const e=[];for(let s=this.localBrushStart;s<this.localBrushEnd;s++)if(null!=t.binContainsProcID[s]){const i=t.binContainsProcID[s];i.forEach(t=>{e.push(t)})}t.$socket.emit("split-mpi-rank",{dataset:t.$store.selectedDataset,ranks:e})}}},Xe=Ye,Ke=Object(x["a"])(Xe,Ge,Le,!1,null,null,null),Ue=Ke.exports,Qe=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")]),s("v-spacer"),1==t.isCallsiteSelected?s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{staticClass:"ma-1 reveal-button",attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.revealCallsite}},[t._v(" Reveal ")])],1):t._e(),1==t.isModuleSelected?s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{staticClass:"ma-1 reveal-button",class:t.isEntryFunctionSelected,attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.showEntryFunctions}},[t._v(" Entry call sites ")]),s("v-btn",{staticClass:"ma-1 reveal-button",class:t.isCalleeSelected,attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.showExitFunctions}},[t._v(" Callees ")]),s("v-spacer"),"true"==t.showSplitButton?s("v-btn",{staticClass:"ma-1 reveal-button",attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.split}},[t._v(" Split ")]):t._e()],1):t._e(),s("span",{staticClass:"component-info"},[t._v(" "+t._s(t.numberOfcallsites)+" call sites. ")]),t._l(t.callsites,(function(e){return s("v-container",{key:t.getID(e.id),staticClass:"callsite-information-node"},[s("v-layout",{attrs:{row:"",wrap:""}},[s("v-flex",{attrs:{md1:""}},[s("v-card",{staticClass:"mx-auto",attrs:{width:"25px",tile:"",outlined:""}},[s("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(i){var a=i.on;return[s("v-flex",t._g({class:t.selectClassName[e.name],attrs:{"text-xs-center":"",id:e.name},on:{click:t.changeSelectedClassName}},a),[t._v(" "+t._s(t.formatNumberOfHops(e.component_level))+" ")])]}}],null,!0)},[s("span",[t._v(" Callsite depth:"+t._s(t.formatNumberOfHops(e.component_level))+" ")])])],1)],1),s("v-flex",{attrs:{md11:""}},[s("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(i){var a=i.on;return[s("v-flex",t._g({staticClass:"pl-2 subtitle-2 font-weight-black"},a),[t._v(" "+t._s(t.formatName(e.name))+" ")])]}}],null,!0)},[s("span",[t._v(t._s(e.name))])])],1)],1),s("v-layout",{staticClass:"information",attrs:{row:"",wrap:""}},[s("div",{staticClass:"subtitle-2"},[t._v(" Module: "+t._s(t.formatModule(e.module))+" ")])]),s("v-layout",{staticClass:"information",attrs:{row:"",wrap:""}},[s("div",{staticClass:"subtitle-2"},[t._v("Mean : "+t._s(t.mean[e.name]))]),s("v-spacer")],1),s("v-layout",{staticClass:"information",attrs:{row:"",wrap:""}},[s("div",{staticClass:"subtitle-2"},[t._v("Variance : "+t._s(t.variance[e.name]))])]),s("v-layout",{staticClass:"information",attrs:{row:"",wrap:""}},[s("div",{staticClass:"subtitle-2"},[t._v(" Std. deviation : "+t._s(t.stdDeviation[e.name])+" ")])]),s("BoxPlot",{ref:e.id,refInFor:!0,attrs:{callsite:e}})],1)}))],2)},Ze=[],Je=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("svg",{staticClass:"boxplot",attrs:{id:t.id,width:t.containerWidth,height:t.containerHeight}},[s("Box",{ref:"Box"}),s("Markers",{ref:"Markers"}),s("Outliers",{ref:"Outliers"}),s("ToolTip",{ref:"ToolTip"})],1)},ts=[],es=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"box"})},ss=[],is={name:"Box",data:()=>({id:"box",paddingTop:10,textOffset:40,fontSize:10,debug:!1,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹"}),methods:{init(t,e,s,i){this.debug&&(console.log("Ensemble q: ",e),console.log("Target q: ",s)),this.q=e,this.targetq=s,this.xScale=i,this.svg=C["u"]("#boxplot-"+t.id),this.id="box-"+t.id,this.g=this.svg.select(".box").attrs({transform:"translate(0, "+this.$parent.boxPosition+")"}),this.box(),this.axis(),this.centerLine(),this.$parent.$refs.ToolTip.init("boxplot-"+t.id)},box(){let t=this;this.targetBoxSVG=this.g.append("rect").attr("class","box").attrs({y:0,x:this.xScale(this.targetq.q1),height:this.$parent.rectHeight,fill:this.$store.runtimeColor.intermediate,width:e=>t.targetq.q1==t.targetq.q3?3:t.xScale(t.targetq.q3)-t.xScale(t.targetq.q1),stroke:"#202020","stroke-width":.5}).style("z-index",1).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderQ(t.targetq)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})},centerLine(){this.centerLineSVG=this.g.insert("line","rect").attrs({class:"centerLine",y1:this.$parent.centerLinePosition,x1:this.xScale(this.targetq.min),y2:this.$parent.centerLinePosition,x2:this.xScale(this.targetq.max),stroke:"black"}).style("stroke-width","1.5").style("z-index",10)},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") Exclusive Runtime (μs)";this.g.append("text").attr("class","boxplot-axis-label").attr("x",this.$parent.boxWidth-20).attr("y",3.8*this.$parent.centerLinePosition).style("font-size","12px").style("text-anchor","end").text(e)},axis(){this.addxAxisLabel();const t=C["b"](this.xScale).ticks(5).tickFormat((t,e)=>{let s=W(t,1);return""+s[0]}),e=this.g.append("g").attrs({class:"boxplot-axis",transform:"translate(0,"+2.5*this.$parent.centerLinePosition+")"}).call(t);e.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("line").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},clear(){this.g.selectAll(".box").remove(),this.g.selectAll(".centerLine").remove(),this.g.selectAll(".boxplot-axis-label").remove(),this.g.selectAll(".boxplot-axis").remove()}}},as=is,rs=Object(x["a"])(as,es,ss,!1,null,null,null),os=rs.exports,ls=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"marker"})},ns=[],hs={name:"Markers",data:()=>({paddingTop:10,textOffset:40,fontSize:10,topPosition:-.2,bottomPosition:.7}),methods:{init(t,e,s,i,a){this.$store.selectedMarker="target",this.q=e,this.targetq=s,this.xScale=i,this.svg=C["u"]("#boxplot-"+t.id),this.g=this.svg.select(".marker").attrs({transform:"translate(0, "+this.$parent.boxPosition+")"}),this.markery1=this.$parent.centerLinePosition-this.$parent.rectHeight/2,this.markery2=this.$parent.centerLinePosition+this.$parent.rectHeight/2,this.medianMarker(),this.extremeMarkers()},medianMarker(){this.medianMarkery1=this.$parent.centerLinePosition-this.$parent.rectHeight,this.medianMarkery2=this.$parent.centerLinePosition+this.$parent.rectHeight,this.medianLine=this.g.append("line").attrs({class:"median",y1:this.medianMarkery1,x1:this.xScale(this.targetq.q2),y2:this.medianMarkery2,x2:this.xScale(this.targetq.q2),stroke:"black"}).style("stroke-width","2").style("z-index",10)},extremeMarkers(){this.targetData=this.targetq,this.data=this.q,this.minMaxTargetMarker()},minMaxTargetMarker(){this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.targetData.min),y2:this.markery2,x2:this.xScale(this.targetData.min),stroke:this.$store.runtimeColor.intermediate}).style("stroke-width","1.5"),this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.targetData.max),y2:this.markery2,x2:this.xScale(this.targetData.max),stroke:this.$store.runtimeColor.intermediate}).style("stroke-width","1.5")},minText(){let t=this.targetData.min;this.g.append("text").attrs({class:"whiskerText body-1",x:.5*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.runtimeColor.intermediate).darker(1)}).style("stroke-width","1").text("Min: "+q(t))},maxText(){let t=this.targetData.max;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth-9*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.runtimeColor.intermediate).darker(1)}).style("stroke-width","1").text("Max:"+q(t))},medianText(){let t=this.targetData.q2;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth/2-4.5*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.runtimeColor.intermediate).darker(1)}).style("stroke-width","1").text("Med.:"+q(t))},qTexts(){this.q1Text(),this.q3Text()},q1Text(){this.g.append("text").attrs({class:"whiskerText",x:this.$parent.containerWidth/3,y:this.informationHeight*this.topPosition,fill:C["o"](this.fill).darker(1)}).style("stroke-width","2").text("q1: "+q(this.q.q1))},q3Text(){this.g.append("text").attrs({class:"whiskerText",x:this.$parent.boxWidth/3*2,y:this.informationHeight*this.topPosition,fill:C["o"](this.fill).darker(1)}).style("stroke-width","1").text("q3: "+q(this.q.q3))},formatName(t){if(t.length<20)return t;let e=this.trunc(t,20);return e},clear(){this.g.selectAll(".whiskerText").remove(),this.g.selectAll(".whisker").remove(),this.g.selectAll(".median").remove()}}},ds=hs,cs=Object(x["a"])(ds,ls,ns,!1,null,null,null),us=cs.exports,fs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"outlier"})},ms=[],ps={name:"Outliers",data:()=>({paddingTop:10,textOffset:40,fontSize:10,outlierRadius:4,informationHeight:70}),created(){this.id="outliers-"+this.callsiteID},methods:{init(t,e,s,i,a,r,o,l,n){this.q=t,this.targetq=e,this.ensembleWhiskerIndices=s,this.targetWhiskerIndices=i,this.d=a,this.targetd=r,this.xScale=o,this.callsite=l,this.svg=C["u"]("#boxplot-"+l.id),this.g=this.svg.select(".outlier").attrs({transform:"translate(0, "+this.paddingTop+")"}),this.height=this.$parent.containerHeight,this.width=this.$parent.containerWidth,this.boxHeight=this.height-this.paddingTop-this.informationHeight,this.boxWidth=this.width,this.targetOutliers(),this.$parent.$refs.ToolTip.init("boxplot-"+l.id)},groupByBand(t,e){let s,i,a,r,o=[],l=0,n=0,h=0;for(let d=0;d<t.length;d+=1){let c=t[d];0==d&&(l=c.x,s=[],i=[],a=[],r=[]);let u=Math.abs(c.x-l);u<=e?(i.push(c.x),s.push(c.value),a.push(c.dataset),r.push(c.rank),n+=1):u>e&&(o.push({values:s,x:i,count:n,ranks:r,datasets:a}),n>h&&(h=n),s=[],i=[],a=[],r=[],s.push(c.value),i.push(c.x),a.push(c.dataset),r.push(c.rank),n=1,l=c.x),d==t.length-1&&(u>e?o.push({values:s,x:i,datasets:a,ranks:r,count:n}):u>e&&(s=[],i=[],a=[],r=[],s.push(c.value),i.push(c.x),r.push(c.rank),a.push(c.dataset),n=1,o.push({values:s,x:i,datasets:a,ranks:r,count:n})))}return{circles:o,max_count:h}},groupOutliers(t,e,s){const i=e**2,a=t.map(t=>{let e=this.xScale(t.value);return{x:e,value:t.value,rank:t.rank,dataset:t.dataset}}).sort((t,e)=>t.x-e.x),r=.001;let o=null,l=null;function n(t,e){let s=o;while(s){if(i-r>(s.x-t)**2+(s.y-e)**2)return!0;s=s.next}return!1}for(const c of a){while(o&&o.x<c.x-i)o=o.next;if(n(c.x,c.y=0)){let t=o;c.y=1/0;do{let e=t.y+Math.sqrt(i-(t.x-c.x)**2);e<c.y&&!n(c.x,e)&&(c.y=e),t=t.next}while(t)}c.next=null,null===o?o=l=c:l=l.next=c}let h=this.groupByBand(a,this.$store.bandWidth);"ensemble"==s&&(this.max_count=h["max_count"]);let d=h["circles"];return d},cleanUpEmptyOutliers(t){let e=[];for(let s=0;s<t.length;s+=1)0!=t[s].count&&e.push(t[s]);return e},targetOutliers(){let t=this,e=this.$store.callsites[this.$store.selectedTargetDataset][this.callsite.name],s=[];if(void 0!=e){s=e[this.$store.selectedMetric]["outliers"];let i=[];for(let t=0;t<s["values"].length;t+=1)0!=s["values"][t]&&i.push({value:s["values"][t],dataset:s["datasets"][t],rank:s["ranks"][t]});this.target_outliers=this.groupOutliers(i,this.$store.bandWidth,"target"),this.outlier=this.g.selectAll(".target-outlier").data(this.target_outliers).join("circle").attrs({r:t=>0==this.max_count?0:t.count/this.max_count+4,cx:t=>t.x[0],cy:t=>this.boxHeight/2-this.informationHeight/4,class:"target-outlier"}).style("opacity",1).style("fill",this.$store.runtimeColor.intermediate).on("click",e=>{t.$parent.$parent.selectedOutlierRanks=e["ranks"].sort((t,e)=>t-e),t.$parent.$parent.selectedOutlierDatasets=e["datasets"].filter((t,e,s)=>s.indexOf(t)===e)}).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderOutliers(e)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})}else this.target_outliers=[]},clear(){this.g.selectAll(".ensemble-outlier").remove(),this.g.selectAll(".target-outlier").remove()}}},gs=ps,xs=Object(x["a"])(gs,fs,ms,!1,null,null,null),bs=xs.exports,ys=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip-auxiliary-function"}})},vs=[],$s={name:"ToolTip",components:{},data:()=>({textCount:0,textxOffset:20,textyOffset:20,textPadding:18,offset:10,fontSize:12}),methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+t),this.height=80,this.halfWidth=document.getElementById(this.id).clientWidth/2,this.halfHeight=document.getElementById(this.id).clientHeight/2},addText(t){this.toolTipText=this.toolTipDiv.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"toolTipContent",x:()=>this.mousePosX>this.halfWidth?this.mousePosX-this.halfWidth+this.textxOffset+"px":this.mousePosX+this.textxOffset+"px",y:()=>this.mousePosY>this.halfHeight?this.mousePosY+this.textyOffset+this.textPadding*this.textCount-this.halfHeight+"px":this.mousePosY+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t),this.textCount+=1},quartiles(){this.addText("Q1: "+G(this.data.q1)),this.addText("Q3: "+G(this.data.q3))},outliers(){this.addText(this.data.count+" outliers")},drawRect(t,e){this.clear(),this.width=t*this.fontSize;C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipRect=this.toolTipDiv.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:e*this.fontSize,x:()=>this.mousePosX>this.halfWidth?this.mousePosX-this.halfWidth+"px":this.mousePosX+"px",y:()=>this.mousePosY>this.halfHeight?this.mousePosY-this.halfHeight+"px":this.mousePosY+"px"})},renderQ(t){this.data=t,this.drawRect(13,4),this.quartiles()},renderOutliers(t){this.data=t,this.drawRect(10,4),this.outliers()},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},Cs=$s,Ms=Object(x["a"])(Cs,ys,vs,!1,null,null,null),_s=Ms.exports,Ts={name:"BoxPlot",props:["callsite","width","height","showTarget"],data:()=>({id:"",boxContainerID:"",markerContainerID:"",outlierContainerID:"",padding:{top:10,bottom:10,left:10,right:10},targetBoxWidth:0,targetBoxHeight:0,targetBoxFill:"",targetBoxX:0,targetBoxY:0,containerHeight:150,containerWidth:0,parentID:"",informationHeight:80,outlierHeight:20,rectHeight:0,centerLinePosition:0,boxHeight:0,boxWidth:0}),components:{Box:os,Outliers:bs,Markers:us,ToolTip:_s},mounted(){this.init();let t=this;E.$on("single-refresh-boxplot",e=>{t.clear(),t.init()})},created(){this.id="boxplot-"+this.callsite.id},methods:{init(){this.containerHeight=150,this.containerWidth=this.$parent.boxplotWidth-2*this.padding.right-1*this.padding.left,this.boxHeight=this.containerHeight-this.informationHeight,this.boxWidth=this.containerWidth,this.boxPosition=this.informationHeight/2+this.outlierHeight/2,this.centerLinePosition=(this.boxHeight-this.informationHeight/4)/2,this.rectHeight=this.boxHeight-this.informationHeight/4-this.outlierHeight/4,this.process(this.callsite),this.svg=C["u"]("#boxplot-"+this.callsite.id).attrs({class:"boxplot",width:this.containerWidth,height:this.containerHeight}),this.xScale=C["q"]().domain([this.targetq.min,this.targetq.max]).range([.05*this.containerWidth,this.containerWidth-.05*this.containerWidth]),this.visualize(this.callsite)},visualize(t){this.$refs.Box.init(t,this.q,this.targetq,this.xScale,this.showTarget),this.$refs.Markers.init(t,this.q,this.targetq,this.xScale,this.showTarget),this.$refs.Outliers.init(this.q,this.targetq,this.ensembleWhiskerIndices,this.targetWhiskerIndices,this.d,this.targetd,this.xScale,this.callsite,this.showTarget)},clear(){this.$refs.Box.clear(),this.$refs.Markers.clear(),this.$refs.Outliers.clear()},process(t){void 0!=this.$store.callsites[this.$store.selectedTargetDataset][t.name]?this.target_data=this.$store.callsites[this.$store.selectedTargetDataset][t.name][this.$store.selectedMetric]["q"]:this.target_data=[0,0,0,0,0],this.targetq=this.qFormat(this.target_data)},qFormat(t){let e={min:t[0],q1:t[1],q2:t[2],q3:t[3],max:t[4]};return e}}},ks=Ts,ws=Object(x["a"])(ks,Je,ts,!1,null,null,null),Ss=ws.exports,Ds={name:"CallsiteInformation",components:{BoxPlot:Ss},data:()=>({id:"callsite-information-overview",message:"Call site Information",callsites:[],numberOfcallsites:0,firstRender:!0,padding:{top:0,right:10,bottom:0,left:10},textOffset:25,boxplotHeight:340,boxplotWidth:0,duration:300,iqrFactor:.15,outlierRadius:4,outlierList:{},callsiteIDMap:{},settings:[{title:"Sort by Inclusive runtime"},{title:"Sort by Exclusive Runtime"}],selectedModule:"",selectedCallsite:"",informationHeight:0,revealCallsites:[],selectedMetric:"",targetMeans:{},targetVariance:{},targetStandardDeviation:{},intersectionCallsites:{},isModuleSelected:!1,isCallsiteSelected:!1,isEntryFunctionSelected:"unselect-callsite",isCalleeSelected:"unselect-callsite",showSplitButton:"false",selectClassName:{},selectedOutlierRanks:{},selectedOutlierDatasets:{},mean:{},variance:{},stdDeviation:{}}),mounted(){let t=this;E.$on("single-select-module",e=>{this.isModuleSelected=!0,t.selectModule(e["module"])}),E.$on("callsite-information-sort",e=>{let s=t.$store.selectedRuntimeSortBy;t.callsites=t.sortByAttribute(t.callsites,s)})},methods:{init(){if(this.firstRender){this.width=document.getElementById(this.id).clientWidth;let t="Ensemble"==this.$store.selectedMode?.66:1;this.height=t*this.$store.viewHeight,this.boxplotWidth=this.width-this.padding.left-this.padding.right,document.getElementById(this.id).style.maxHeight=this.height+"px",this.informationHeight=50,this.firstRender=!1}this.visualize()},visualize(){this.setStates(),this.borderColorByMetric(),this.boxplotByMetric()},getID(t){return"callsite-information-"+t},setStates(){this.selectedModule=this.$store.selectedModule,this.selectedMode=this.$store.selectedMode,this.selectedCallsite=this.$store.selectedCallsite,this.selectedMetric=this.$store.selectedMetric,this.targetColor=this.$store.runtimeColor.textColor,this.callsites=this.$store.callsites[this.$store.selectedTargetDataset],this.numberOfcallsites=Object.keys(this.callsites).length,this.callsites=this.sortByAttribute(this.callsites,this.$store.selectedMetric)},borderColorByMetric(){for(let t in this.callsites){let e=this.callsites[t],s="#callsite-information-node-"+e.id;C["u"](s).style("stroke",this.$store.runtimeColor.getColorByValue(e[this.$store.selectedMetric]["mean_time"]))}},boxplotByMetric(){for(let t in this.callsites){let e=this.callsites[t][this.selectedMetric];this.mean[t]=q(e["mean_time"]),this.variance[t]=q(e["variance"]),this.stdDeviation[t]=q(e["std_deviation"]),this.selectClassName[t]="unselect-callsite"}},sortByAttribute(t,e){let s=Object.keys(t).map((function(e){return[e,t[e]]}));return"Exclusive"==e||"Inclusive"==e?s=s.sort((function(t,s){return s[1][e]["mean_time"]-t[1][e]["mean_time"]})):"Standard Deviation"==e&&s.sort((function(t,e){return e[1][self.$store.selectedMetric]["std_deviation"]-t[1][self.$store.selectedMetric]["std_deviation"]})),t=s.reduce((function(t,e){return t[e[0]]=e[1],t}),{}),t},changeSelectedClassName(){event.stopPropagation();let t=event.currentTarget.id;"select-callsite"==this.selectClassName[t]?(this.revealCallsites.splice(this.revealCallsites.indexOf(t),1),event.target.className="flex text-xs-center unselect-callsite",this.selectClassName[t]="unselect-callsite"):(this.selectClassName[t]="select-callsite",event.target.className="flex text-xs-center select-callsite",this.revealCallsites.push(t)),0==this.revealCallsites.length?this.switchIsSelectedCallsite(!1):this.switchIsSelectedCallsite(!0)},switchIsSelectedCallsite(t){this.isCallsiteSelected=t},switchIsSelectedModule(t){this.isModuleSelected=t},selectedClassName(t){return this.selectClassName[t]},formatModule(t){return t.length<10?t:z(t,10)},formatName(t){if(t.length<25)return t;let e=z(t,25);return e},formatNumberOfHops(t){return void 0==t||void 0==t[0]?"-":t[0]-1},formatRuntime(t){let e=C["g"](".2"),s=e(t)+" μs";return s},clear(){for(let t in this.callsites)E.$emit("hide-mpi-boxplot",this.callsites[t])},dataset(t){return this.labels[t]},revealCallsite(t){t.stopPropagation(),this.$socket.emit("reveal_callsite",{mode:this.$store.selectedMode,reveal_callsites:this.revealCallsites,dataset:this.$store.selectedTargetDataset}),E.$emit("reveal-callsite")},showEntryFunctions(t){t.stopPropagation(),"unselect-callsite"==this.isEntryFunctionSelected?(this.isEntryFunctionSelected="select-callsite",this.isCalleeSelected="unselect-callsite"):this.isEntryFunctionSelected="unselect-callsite",this.showSplitButton="true"},showExitFunctions(t){t.stopPropagation(),"unselect-callsite"==this.isCalleeSelected?(this.isCalleeSelected="select-callsite",this.isEntryFunctionSelected="unselect-callsite"):this.isCalleeSelected="unselect-callsite",this.showSplitButton="true"},selectModule(t){let e=this.$store.moduleCallsiteMap[this.$store.selectedTargetDataset][t];this.numberOfCallsites=Object.keys(e).length;for(let s in this.callsites)C["u"]("#callsite-information-"+s.id).style("display","none");this.callsites={},e.forEach(t=>{this.callsites[t]=this.$store.callsites[this.$store.selectedTargetDataset][t],C["u"]("#callsite-information-"+this.callsites[t].id).style("display","block")})},selectCallsitesByModule(t){this.selectedModule=t,this.selectedCallsite="";let e=Object.keys(this.$store.callsites[this.$store.selectedTargetDataset]),s=this.$store.callsites["ensemble"];for(let a in e)s.hasOwnProperty(a)&&(document.getElementById(s[a].id).style.opacity=.2,document.getElementById(s[a].id).style.borderStyle="solid");let i=this.$store.moduleCallsiteMap[t];for(let a in i)s.hasOwnProperty(a)&&(document.getElementById(s[a].id).style.opacity=1,document.getElementById(s[a].id).style.borderStyle="dotted")},getSelectedOutlierRanks(t){return this.selectedOutlierRanks[t]},split(){"select-callsite"==this.isEntryFunctionSelected?(this.$socket.emit("split_by_entry_callsites",{selectedModule:this.$store.selectedModule,dataset:this.$store.selectedTargetDataset}),E.$emit("split-by-entry-callsites")):"select-callsite"==this.isCalleeSelected&&(this.$socket.emit("split_by_callees",{selectedModule:this.$store.selectedModule,dataset:this.$store.selectedTargetDataset}),E.$emit("split-by-callees"))}}},Ps=Ds,Es=(s("a700"),Object(x["a"])(Ps,Qe,Ze,!1,null,null,null)),Is=Es.exports,Bs=(s("8055"),{name:"SingleCallFlow",components:{Splitpanes:D.a,SuperGraph:ve,CCT:ke,SingleScatterplot:Fe,SingleHistogram:Ue,CallsiteInformation:Is},watch:{showTarget:function(t){E.$emit("show-target-auxiliary")}},data:()=>({appName:"CallFlow",left:!1,formats:["CCT","SuperGraph"],selectedFormat:"SuperGraph",datasets:[],selectedTargetDataset:"",selectedDataset2:"",groupBy:["Name","Module","File"],selectedGroupBy:"Module",filterBy:["Inclusive","Exclusive"],filterRange:[0,100],selectedFilterBy:"Inclusive",selectedIncTime:0,filterPercRange:[0,100],selectedFilterPerc:5,metrics:["Exclusive","Inclusive"],selectedMetric:"Inclusive",runtimeColorMap:[],distributionColorMap:[],selectedRuntimeColorMap:"OrRd",colorPoints:[3,4,5,6,7,8,9],selectedColorPoint:9,selectedColorMin:null,selectedColorMax:null,selectedColorMinText:"",selectedColorMaxText:"",groupModes:["include callbacks","exclude callbacks"],selectedGroupMode:"include callbacks",scatterMode:["mean","all"],selectedScatterMode:"all",selectedFunctionsInCCT:70,isCallgraphInitialized:!1,isCCTInitialized:!1,datas:["Dataframe","Graph"],selectedData:"Dataframe",firstRender:!0,ranks:[],initLoad:!0,comparisonMode:!1,selectedCompareDataset:null,selectedOutlierBand:4,defaultCallSite:"<program root>",modes:["Ensemble","Single"],selectedMode:"Single",exhibitModes:["Presentation","Default"],selectedExhibitMode:"Default",selectedMPIBinCount:20,selectedRuntimeSortBy:"Inclusive",sortByModes:["Inclusive","Exclusive","Standard Deviation"],scales:["Log","Linear"],selectedScale:"Linear",props:["name","rank","dataset","all_ranks"],selectedProp:"rank",metricTimeMap:{},selectedRunBinCount:20}),mounted(){this.fetchData(),E.$on("lasso_selection",()=>{this.$store.resetTargetDataset=!0,this.clearLocal(),this.setTargetDataset(),this.fetchData()}),E.$on("show_target_auxiliary",()=>{this.clearLocal(),this.init()})},methods:{async fetchData(){void 0===this.$store.selectedDatasets&&this.$router.push("/"),this.$store.auxiliarySortBy=this.auxiliarySortBy,this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.selectedRunBinCount=this.selectedRunBinCount;const t=await m.POSTRequest("supergraph_data",{datasets:this.$store.selectedDatasets,sortBy:this.$store.auxiliarySortBy,MPIBinCount:this.$store.selectedMPIBinCount,RunBinCount:this.$store.selectedRunBinCount,re_process:1});console.debug("[/supergraph_data]",t),this.dataReady=!0,this.setupStore(t),this.init()},setupStore(t){this.$store.modules=t["module"],this.$store.callsites=t["callsite"],this.$store.gradients=t["gradients"],this.$store.moduleCallsiteMap=t["moduleCallsiteMap"],this.$store.callsiteModuleMap=t["callsiteModuleMap"],this.datasets=this.$store.selectedDatasets,this.numOfRuns>=2?(this.modes=["Single","Ensemble"],this.selectedMode="Ensemble"):1==this.numOfRuns&&(this.enableDist=!1,this.modes=["Single"],this.selectedMode="Single"),this.$store.moduleCallsiteMap=t["module_callsite_map"],this.$store.callsiteModuleMap=t["callsite_module_map"],this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.selectedRunBinCount=this.selectedRunBinCount},init(){console.assert(this.selectedMode,"Single"),console.log("Mode : ",this.selectedMode),console.log("Number of runs :",this.$store.numOfRuns),console.log("Dataset : ",this.selectedTargetDataset),console.log("Format = ",this.selectedFormat),this.setGlobalVariables(),this.setTargetDataset(),this.setupColors(),this.setViewDimensions(),this.setComponentMap(),"SuperGraph"==this.selectedFormat?(this.setSelectedModule(),this.initComponents(this.currentSingleSuperGraphComponents)):"CCT"==this.selectedFormat&&this.initComponents(this.currentSingleCCTComponents),E.$emit("single-refresh-boxplot",{})},setGlobalVariables(){this.$store.selectedScatterMode="mean",this.$store.nodeInfo={},this.$store.selectedMode=this.selectedMode,this.$store.selectedFunctionsInCCT=this.selectedFunctionsInCCT,this.$store.selectedHierarchyMode=this.selectedHierarchyMode,"Single"==this.$store.selectedMode&&(this.$store.selectedProp="rank"),this.$store.selectedScale=this.selectedScale,this.$store.selectedCompareMode=this.selectedCompareMode,this.$store.selectedIQRFactor=this.selectedIQRFactor,this.$store.selectedRuntimeSortBy=this.selectedRuntimeSortBy,this.$store.selectedNumOfClusters=this.selectedNumOfClusters,this.$store.selectedEdgeAlignment="Top",this.$store.datasetMap={};for(let t=0;t<this.$store.selectedDatasets.length;t+=1)this.$store.datasetMap[this.$store.selectedDatasets[t]]="run-"+t;this.$store.contextMenu=this.contextMenu,this.$store.encoding="MEAN",this.$store.selectedSuperNodePositionMode="Minimal edge crossing",this.$store.auxiliarySortBy=this.auxiliarySortBy,this.$store.reprocess=0,this.$store.comparisonMode=this.comparisonMode,this.$store.fontSize=14,this.$store.transitionDuration=1e3},setTargetDataset(){this.firstRender&&(this.$store.resetTargetDataset=!0),this.$store.selectedMetric=this.selectedMetric,this.datasets=this.sortDatasetsByAttr(this.$store.selectedDatasets,"Inclusive");let t="",e=0,s={};"Inclusive"==this.$store.selectedMetric?s=this.$store.maxIncTime:"Exclusive"==this.$store.selectedMetric&&(s=this.$store.maxExcTime);for(let i of this.$store.selectedDatasets)e<s[i]&&(e=s[i],t=i);this.firstRender||this.$store.resetTargetDataset?(this.$store.selectedTargetDataset=t,this.selectedTargetDataset=t,this.firstRender=!1,this.$store.resetTargetDataset=!1):this.$store.selectedTargetDataset=this.selectedTargetDataset,this.selectedIncTime=(this.selectedFilterPerc*this.$store.maxIncTime[this.selectedTargetDataset]*1e-6/100).toFixed(3),console.log("Maximum among all runtimes: ",this.selectedTargetDataset)},setupColors(){this.$store.runtimeColor=new w,this.runtimeColorMap=this.$store.runtimeColor.getAllColors(),this.setRuntimeColorScale(),this.$store.selectedRuntimeColorMap=this.selectedRuntimeColorMap,this.$store.selectedDistributionColorMap=this.selectedDistributionColorMap,this.$store.selectedColorPoint=this.selectedColorPoint,this.$store.runtimeColor.intermediate="#d9d9d9",this.$store.runtimeColor.highlight="#C0C0C0",this.$store.runtimeColor.textColor="#3a3a3a",this.$store.runtimeColor.edgeStrokeColor="#888888"},setViewDimensions(){this.$store.viewWidth=window.innerWidth;let t=0,e=0;t=null==document.getElementById("toolbar")?0:document.getElementById("toolbar").clientHeight,e=null==document.getElementById("footer")?0:document.getElementById("footer").clientHeight,this.$store.viewHeight=window.innerHeight-t-e},setRuntimeColorScale(){let t=null,e=null;"Ensemble"==this.selectedMode?"Inclusive"==this.selectedMetric?(t=parseFloat(this.$store.minIncTime["ensemble"]),e=parseFloat(this.$store.maxIncTime["ensemble"])):"Exclusive"==this.selectedMetric?(t=parseFloat(this.$store.minExcTime["ensemble"]),e=parseFloat(this.$store.maxExcTime["ensemble"])):"Imbalance"==this.selectedMetric&&(t=0,e=1):"Single"==this.selectedMode&&("Inclusive"==this.selectedMetric?(t=parseFloat(this.$store.minIncTime[this.selectedTargetDataset]),e=parseFloat(this.$store.maxIncTime[this.selectedTargetDataset])):"Exclusive"==this.selectedMetric?(t=parseFloat(this.$store.minExcTime[this.selectedTargetDataset]),e=parseFloat(this.$store.maxExcTime[this.selectedTargetDataset])):"Imbalance"==this.selectedMetric&&(t=0,e=1)),this.selectedColorMinText=q(parseFloat(t)),this.selectedColorMaxText=q(parseFloat(e)),this.$store.selectedColorMin=this.colorMin,this.$store.selectedColorMax=this.colorMax,this.$store.runtimeColor.setColorScale(this.$store.selectedMetric,t,e,this.selectedRuntimeColorMap,this.selectedColorPoint)},setSelectedModule(){let t=this.sortModulesByMetric();this.selectedModule=t[0][0],this.$store.selectedModule=this.selectedModule},setComponentMap(){this.currentSingleCCTComponents=[this.$refs.SingleCCT],this.currentSingleSuperGraphComponents=[this.$refs.SingleSuperGraph,this.$refs.SingleHistogram,this.$refs.SingleScatterplot,this.$refs.CallsiteInformation]},clear(){"CCT"==this.selectedFormat?this.clearComponents(this.currentSingleCCTComponents):"SuperGraph"==this.selectedFormat&&this.clearComponents(this.currentSingleSuperGraphComponents)},clearLocal(){"CCT"==this.selectedFormat?this.clearComponents(this.currentSingleSuperGraphComponents):"SuperGraph"==this.selectedFormat&&this.clearComponents(this.currentSingleCCTComponents)},initComponents(t){for(let e=0;e<t.length;e++)t[e].init()},clearComponents(t){for(let e=0;e<t.length;e++)t[e].clear()},formatRuntimeWithoutUnits(t){let e=C["g"](".2"),s=e(t);return s},sortDatasetsByAttr(t,e){if(1==t.length)return this.metricTimeMap[t[0]]=this.$store.maxIncTime[t[0]],t;let s=t.sort((t,s)=>{let i=0,a=0;return"Inclusive"==e?(i=this.$store.maxIncTime[t],a=this.$store.maxIncTime[s],this.metricTimeMap=this.$store.maxIncTime):"Exclusive"==e&&(i=this.$store.maxExcTime[t],a=this.$store.maxExcTime[s],this.metricTimeMap=this.$store.maxExcTime),parseFloat(i)-parseFloat(a)});return s},sortModulesByMetric(t){let e=Object.keys(this.$store.modules[this.selectedTargetDataset]),s={};for(let a of e)s[a]=this.$store.modules[this.selectedTargetDataset][a][this.$store.selectedMetric]["mean_time"];let i=Object.keys(s).map((function(t){return[t,s[t]]}));return i.sort((function(t,e){return e[1]-t[1]})),i},updateColors(){this.clearLocal(),this.setupColors(),this.init()},async updateFormat(){this.clearLocal(),this.init()},updateTargetDataset(){this.clear(),this.$store.selectedTargetDataset=this.selectedTargetDataset,console.debug("[Update] Target Dataset: ",this.selectedTargetDataset),C["v"](".tick").remove(),this.init()},updateMode(){this.clear(),this.init()},updateMetric(){this.$store.selectedMetric=this.selectedMetric,this.clear(),this.init()},updateScale(){this.$store.selectedScale=this.selectedScale,this.clear(),this.init()},updateIQRFactor(){this.$store.selectedIQRFactor=this.selectedIQRFactor,this.clearLocal(),this.init()},updateRuntimeSortBy(){this.$store.selectedRuntimeSortBy=this.selectedRuntimeSortBy,E.$emit("callsite-information-sort")},updateMPIBinCount(){this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.reprocess=1,this.requestEnsembleData(),this.clearLocal(),this.init()}}}),As=Bs,Os=Object(x["a"])(As,v,$,!1,null,null,null),Hs=Os.exports,Rs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-app",{attrs:{id:"inspire"}},[s("v-toolbar",{attrs:{id:"toolbar",color:"teal",dark:"",fixed:"",app:"","clipped-right":""}},[s("v-toolbar-side-icon",{on:{click:function(e){e.stopPropagation(),t.left=!t.left}}},[s("v-icon",[t._v("settings")])],1),s("v-toolbar-title",{staticStyle:{"margin-right":"3em"}},[t._v(t._s(t.appName))]),s("v-flex",{staticClass:"ma-2",attrs:{xs3:""}},[s("v-select",{attrs:{label:"Select Target run (Sorted by inclusive runtime)",items:t.datasets,"menu-props":{maxHeight:"400"},box:""},on:{change:function(e){return t.updateTargetDataset()}},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}},{key:"item",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}}]),model:{value:t.selectedTargetDataset,callback:function(e){t.selectedTargetDataset=e},expression:"selectedTargetDataset"}})],1),s("v-flex",{staticClass:"ma-2",attrs:{xs3:""}},["SuperGraph"==t.selectedFormat?s("v-select",{attrs:{label:"Select Compare run",items:t.datasets,"menu-props":{maxHeight:"400"},box:""},on:{change:function(e){return t.updateCompareDataset()}},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}},{key:"item",fn:function(e){var s=e.item;return[t._v(" "+t._s(t.datasets.indexOf(s)+1)+". "+t._s(s)+" - "+t._s(t.formatRuntimeWithoutUnits(t.metricTimeMap[s]))+" ")]}}],null,!1,2364397756),model:{value:t.selectedCompareDataset,callback:function(e){t.selectedCompareDataset=e},expression:"selectedCompareDataset"}}):t._e()],1),s("v-spacer"),s("v-flex",{staticClass:"ma-1",attrs:{xs2:""}},[s("v-select",{attrs:{label:"Graph to visualize",items:t.formats,"menu-props":{maxHeight:"400"},box:""},on:{change:function(e){return t.updateFormat()}},model:{value:t.selectedFormat,callback:function(e){t.selectedFormat=e},expression:"selectedFormat"}})],1)],1),s("v-navigation-drawer",{attrs:{temporary:"",fixed:""},model:{value:t.left,callback:function(e){t.left=e},expression:"left"}},[s("v-btn",{attrs:{slot:"activator",color:"primary",dark:""},slot:"activator"},[t._v("Open Dialog")]),s("v-card",{attrs:{flex:"","fill-height":"",id:"control-panel"}},[s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{attrs:{icon:""}},[s("v-icon",{on:{click:function(e){return t.reset()}}},[t._v("refresh")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Visual Encoding")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",[t._v(" "+t._s(t.targetInfo)+" "),s("v-spacer"),s("v-spacer"),s("v-switch",{attrs:{color:"#009687"},on:{change:function(e){return t.updateTargetColor()}},model:{value:t.showTarget,callback:function(e){t.showTarget=e},expression:"showTarget"}})],1)],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Metric",items:t.metrics,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateMetric()}},model:{value:t.selectedMetric,callback:function(e){t.selectedMetric=e},expression:"selectedMetric"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Number of bins for Run Distribution",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateRunBinCount()}},model:{value:t.selectedRunBinCount,callback:function(e){t.selectedRunBinCount=e},expression:"selectedRunBinCount"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Number of bins for MPI Distribution",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateMPIBinCount()}},model:{value:t.selectedMPIBinCount,callback:function(e){t.selectedMPIBinCount=e},expression:"selectedMPIBinCount"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Scale",items:t.scales,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateScale()}},model:{value:t.selectedScale,callback:function(e){t.selectedScale=e},expression:"selectedScale"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Bin by attribute",items:t.props,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateProp()}},model:{value:t.selectedProp,callback:function(e){t.selectedProp=e},expression:"selectedProp"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Colors")])],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Runtime Color Map",items:t.runtimeColorMap,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedRuntimeColorMap,callback:function(e){t.selectedRuntimeColorMap=e},expression:"selectedRuntimeColorMap"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Distribution Color Map",items:t.distributionColorMap,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedDistributionColorMap,callback:function(e){t.selectedDistributionColorMap=e},expression:"selectedDistributionColorMap"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Target Color",items:t.targetColors,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateTargetColor()}},model:{value:t.selectedTargetColor,callback:function(e){t.selectedTargetColor=e},expression:"selectedTargetColor"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color points (3-9)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorPoint,callback:function(e){t.selectedColorPoint=e},expression:"selectedColorPoint"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color minimum (in seconds)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorMinText,callback:function(e){t.selectedColorMinText=e},expression:"selectedColorMinText"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"Color maximum (in seconds)",type:"number","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateColors()}},model:{value:t.selectedColorMaxText,callback:function(e){t.selectedColorMaxText=e},expression:"selectedColorMaxText"}})],1),s("v-flex",{staticClass:"ma-1",attrs:{xs12:""}},[s("v-subheader",{staticClass:"teal lighten-4"},[t._v("Call site Correspondence")])],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-select",{attrs:{label:"Sort by",items:t.sortByModes,"menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateRuntimeSortBy()}},model:{value:t.selectedRuntimeSortBy,callback:function(e){t.selectedRuntimeSortBy=e},expression:"selectedRuntimeSortBy"}})],1),s("v-flex",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}],staticClass:"ma-1",attrs:{xs12:""}},[s("v-text-field",{staticClass:"mt-0",attrs:{label:"IQR Factor",type:"float","menu-props":{maxHeight:"200"},"persistent-hint":""},on:{change:function(e){return t.updateIQRFactor()}},model:{value:t.selectedIQRFactor,callback:function(e){t.selectedIQRFactor=e},expression:"selectedIQRFactor"}})],1)],1)],1)],1),"Ensemble"==t.selectedMode?s("v-content",{staticClass:"pt-auto"},[s("v-layout",{directives:[{name:"show",rawName:"v-show",value:"SuperGraph"==t.selectedFormat,expression:"selectedFormat == 'SuperGraph'"}]},[s("splitpanes",{staticClass:"default-theme",attrs:{id:"callgraph-dashboard"}},[s("splitpanes",{attrs:{horizontal:"","splitpanes-size":25}},[s("ModuleHierarchy",{ref:"ModuleHierarchy"}),s("EnsembleScatterplot",{ref:"EnsembleScatterplot"}),s("EnsembleHistogram",{ref:"EnsembleHistogram"})],1),s("splitpanes",{attrs:{horizontal:"","splitpanes-size":55}},[s("SuperGraph",{ref:"SuperGraph"})],1),s("splitpanes",{attrs:{horizontal:"","splitpanes-size":20}},[s("CallsiteCorrespondence",{ref:"CallsiteCorrespondence"}),s("ParameterProjection",{ref:"ParameterProjection"})],1)],1)],1),s("v-layout",{directives:[{name:"show",rawName:"v-show",value:"CCT"==t.selectedFormat,expression:"selectedFormat == 'CCT'"}]},[s("splitpanes",{attrs:{id:" ensemble-cct-dashboard"}},[s("splitpanes",{attrs:{horizontal:"","splitpanes-size":100}},[s("CCT",{ref:"CCT"})],1)],1)],1),s("v-layout",{directives:[{name:"show",rawName:"v-show",value:"CCT"==t.selectedFormat&&"Compare"==t.selectedMode,expression:"selectedFormat == 'CCT' && selectedMode == 'Compare'"}]},[s("splitpanes",{attrs:{id:"compare-cct-dashboard"}},[s("splitpanes",{attrs:{horizontal:"","splitpanes-size":50}},[s("CCT",{ref:"CCT1"})],1),s("splitpanes",{attrs:{horizontal:"","splitpanes-size":50}},[s("CCT",{ref:"CCT2"})],1)],1)],1)],1):t._e(),s("v-footer",{attrs:{id:"footer",color:"teal",app:""}},[t._v(" Lawrence Livermore National Laboratory, and University of California, Davis "),s("v-spacer"),s("span",[t._v("©2020")])],1)],1)},Fs=[],Gs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")]),s("v-spacer"),s("span",{staticClass:"component-info"},[s("p")]),1==t.isCallsiteSelected?s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{staticClass:"ma-1 reveal-button",attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.clickCallsite}},[t._v(" Reveal ")])],1):t._e(),1==t.isModuleSelected?s("v-layout",{attrs:{row:"",wrap:""}},[s("v-btn",{staticClass:"ma-1 reveal-button",class:t.isEntryFunctionSelected,attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.showEntryFunctions}},[t._v(" Entry call sites ")]),s("v-btn",{staticClass:"ma-1 reveal-button",class:t.isCalleeSelected,attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.showExitFunctions}},[t._v(" Callees ")]),s("v-spacer"),"true"==t.showSplitButton?s("v-btn",{staticClass:"ma-1 reveal-button",attrs:{small:"",tile:"",outlined:"",color:"white"},on:{click:t.split}},[t._v(" Split ")]):t._e()],1):t._e(),s("v-layout",{staticClass:"component-data",attrs:{row:"",wrap:""}},[s("p",{staticClass:"subtitle-2"},[t._v(" Unmatched "+t._s(t.numberOfDifferenceCallsites)+" callsites. ")])]),t._l(t.differenceCallsites,(function(e){return s("v-container",{key:t.getID(e.id),staticClass:"callsite-information-node"},[s("v-layout",{attrs:{row:"",wrap:""}},[s("v-flex",{attrs:{md1:""}},[s("v-card",{staticClass:"mx-auto",attrs:{width:"25px",tile:"",outlined:""}},[s("v-tooltip",{attrs:{bottom:""}},[[s("v-flex",{class:t.selectClassName[e.name],attrs:{id:e.name,"text-xs-center":""},on:{click:t.changeSelectedClassName}},[t._v(" "+t._s(t.formatNumberOfHops(e.component_level))+" ")])],s("span",[t._v("Component level: "+t._s(t.formatNumberOfHops(e.component_level)))])],2)],1)],1),s("v-flex",{attrs:{md11:""}},[s("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(i){var a=i.on;return[s("v-flex",t._g({staticClass:"pl-2 subtitle-2 font-weight-black"},a),[t._v(" "+t._s(t.formatName(e.name))+" ")])]}}],null,!0)},[s("span",[t._v(t._s(e.name))])])],1)],1),s("v-layout",{attrs:{row:"",wrap:""}},[s("v-spacer"),"Ensemble"==t.selectedMode?s("div",{staticClass:"subtitle-2",style:"color: "+t.targetColor},[t._v(" Std. Dev. : "+t._s(t.targetStandardDeviation[e.name])+" "+t._s(t.selectedMode)+" ")]):t._e()],1),s("BoxPlot",{ref:e.id,refInFor:!0,attrs:{callsite:e,showTarget:"false"}}),s("v-layout",{attrs:{row:"",wrap:""}},[s("div",{staticClass:"subtitle-2",style:"color: "+t.ensembleColor},[t._v(" Mean : "+t._s(t.ensembleMeans[e.name])+" ")]),s("v-spacer"),s("div",{staticClass:"subtitle-2",style:"color: "+t.ensembleColor},[t._v(" Std. Dev. : "+t._s(t.ensembleStandardDeviation[e.name])+" ")])],1)],1)})),s("v-layout",{staticClass:"component-data",attrs:{row:"",wrap:""}},[s("p",{staticClass:"subtitle-2"},[t._v(" Matched "+t._s(t.numberOfIntersectionCallsites)+" callsites. ")])]),t._l(t.intersectionCallsites,(function(e){return s("v-container",{key:t.getID(e.id),staticClass:"callsite-information-node"},[s("v-layout",{staticStyle:{"align-items":"center"},attrs:{row:"",wrap:""}},[s("v-flex",{attrs:{md1:""}},[s("v-card",{staticClass:"mx-auto",attrs:{width:"25px",tile:"",outlined:""}},[s("v-flex",{class:t.selectClassName[e.name],attrs:{id:e.name,"text-xs-center":""},on:{click:t.changeSelectedClassName}},[t._v(" "+t._s(t.formatNumberOfHops(e.component_level))+" ")])],1)],1),s("v-flex",{attrs:{md11:""}},[s("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(i){var a=i.on;return[s("v-flex",t._g({staticClass:"pl-2 subtitle-2 font-weight-black"},a),[t._v(" "+t._s(t.formatName(e.name))+" ")])]}}],null,!0)},[s("span",[t._v(t._s(e.name))])])],1)],1),s("v-layout",{attrs:{row:"",wrap:""}},[s("div",{staticClass:"body-2",style:"color: "+t.targetColor},[t._v(" Mean : "+t._s(t.targetMeans[e.name])+" ")]),s("v-spacer"),s("div",{staticClass:"body-2",style:"color: "+t.targetColor},[t._v(" Std. Dev. : "+t._s(t.targetStandardDeviation[e.name])+" ")])],1),s("BoxPlot",{ref:e.id,refInFor:!0,attrs:{callsite:e,showTarget:"false"}}),s("v-layout",{attrs:{row:"",wrap:""}},[s("div",{staticClass:"body-2",style:"color: "+t.ensembleColor},[t._v(" Mean : "+t._s(t.ensembleMeans[e.name])+" ")]),s("v-spacer"),s("div",{staticClass:"body-2",style:"color: "+t.ensembleColor},[t._v(" Std. Dev. : "+t._s(t.ensembleStandardDeviation[e.name])+" ")])],1),s("v-layout",{attrs:{row:"",wrap:""}},[s("v-flex",{staticClass:"body-2",attrs:{md12:""}},[t._v("Ranks : "+t._s(t.selectedOutlierRanks)+" ")]),s("v-spacer"),s("v-flex",{staticClass:"body-2",attrs:{md12:""}},[t._v("Datasets : "+t._s(t.selectedOutlierDatasets))])],1)],1)}))],2)},Ls=[],qs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("svg",{staticClass:"boxplot",attrs:{id:t.id,width:t.containerWidth,height:t.containerHeight}},[s("Box",{ref:"Box"}),s("Markers",{ref:"Markers"}),s("Outliers",{ref:"Outliers"}),s("ToolTip",{ref:"ToolTip"})],1)},Ws=[],Ns=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"box"})},zs=[],Vs={name:"Box",data:()=>({id:"box",paddingTop:10,textOffset:40,fontSize:10,debug:!1,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹"}),methods:{init(t,e,s,i,a){this.debug&&(console.log("Ensemble q: ",e),console.log("Target q: ",s)),this.q=e,this.targetq=s,this.xScale=i,this.svg=C["u"]("#boxplot-"+t.id),this.id="box-"+t.id,this.g=this.svg.select(".box").attrs({transform:"translate(0, "+this.$parent.boxPosition+")"}),this.ensembleBox(),this.$store.showTarget&&a&&this.targetBox(),this.centerLine(),this.axis(),this.$parent.$refs.ToolTip.init("boxplot-"+t.id)},ensembleBox(){let t=this;this.boxSVG=this.g.append("rect").attrs({class:"ensembleBox",y:0,x:this.xScale(this.q.q1),height:this.$parent.rectHeight,fill:this.$store.distributionColor.ensemble,width:this.xScale(this.q.q3)-this.xScale(this.q.q1),stroke:"#202020","stroke-width":.5}).style("z-index",1).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderQ(t.q)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})},targetBox(){let t=this;this.targetBoxSVG=this.g.append("rect").attr("class","targetbox").attrs({y:0,x:this.xScale(this.targetq.q1),height:this.$parent.rectHeight,fill:this.$store.distributionColor.target,width:e=>t.targetq.q1==t.targetq.q3?3:t.xScale(t.targetq.q3)-t.xScale(t.targetq.q1),stroke:"#202020","stroke-width":.5}).style("z-index",1).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderQ(t.targetq)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})},centerLine(){this.centerLineSVG=this.g.insert("line","rect").attrs({class:"centerLine",y1:this.$parent.centerLinePosition,x1:this.xScale(this.q.min),y2:this.$parent.centerLinePosition,x2:this.xScale(this.q.max),stroke:"black"}).style("stroke-width","1.5").style("z-index",10)},clear(){this.g.selectAll(".ensembleBox").remove(),this.$store.showTarget&&this.g.selectAll(".targetbox").remove(),this.g.selectAll(".centerLine").remove()},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") Exclusive Runtime (μs)";this.g.append("text").attr("class","axis-label").attr("x",this.$parent.boxWidth-20).attr("y",3.8*this.$parent.centerLinePosition).style("font-size","12px").style("text-anchor","end").text(e)},axis(){this.addxAxisLabel();const t=C["b"](this.xScale).ticks(5).tickFormat((t,e)=>{let s=W(t,1);return""+s[0]}),e=this.g.append("g").attrs({class:"axis",id:"xAxis",transform:"translate(0,"+2.5*this.$parent.centerLinePosition+")"}).call(t);e.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("line").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")}}},js=Vs,Ys=Object(x["a"])(js,Ns,zs,!1,null,null,null),Xs=Ys.exports,Ks=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"marker"})},Us=[],Qs={name:"Markers",data:()=>({paddingTop:10,textOffset:40,fontSize:10,topPosition:-.2,bottomPosition:.75}),mounted(){},methods:{init(t,e,s,i,a){this.$store.selectedMarker="target",this.q=e,this.targetq=s,this.xScale=i,this.svg=C["u"]("#boxplot-"+t.id),this.g=this.svg.select(".marker").attrs({transform:"translate(0, "+this.$parent.boxPosition+")"}),this.markery1=this.$parent.centerLinePosition-this.$parent.rectHeight/2,this.markery2=this.$parent.centerLinePosition+this.$parent.rectHeight/2,this.medianMarker(),this.extremeMarkers()},medianMarker(){this.medianMarkery1=this.$parent.centerLinePosition-this.$parent.rectHeight,this.medianMarkery2=this.$parent.centerLinePosition+this.$parent.rectHeight,this.medianLine=this.g.append("line").attrs({class:"median",y1:this.medianMarkery1,x1:this.xScale(this.q.q2),y2:this.medianMarkery2,x2:this.xScale(this.q.q2),stroke:"black"}).style("stroke-width","2").style("z-index",10)},extremeMarkers(){this.targetData=this.targetq,this.data=this.q,this.$store.showTarget&&this.minMaxTargetMarker()},minMaxEnsembleMarker(){this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.q.min),y2:this.markery2,x2:this.xScale(this.q.min),stroke:this.$store.distributionColor.ensemble}).style("stroke-width","1.5"),this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.q.max),y2:this.markery2,x2:this.xScale(this.q.max),stroke:this.$store.distributionColor.ensemble}).style("stroke-width","1.5")},minMaxTargetMarker(){this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.targetData.min),y2:this.markery2,x2:this.xScale(this.targetData.min),stroke:this.$store.distributionColor.target}).style("stroke-width","1.5"),this.g.append("line").attrs({class:"whisker",y1:this.markery1,x1:this.xScale(this.targetData.max),y2:this.markery2,x2:this.xScale(this.targetData.max),stroke:this.$store.distributionColor.target}).style("stroke-width","1.5")},minText(){if(this.$store.showTarget){let t=this.targetData.min;this.g.append("text").attrs({class:"whiskerText body-1",x:.5*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.distributionColor.target).darker(1)}).style("stroke-width","1").text("Min: "+q(t))}let t=this.data.min;this.g.append("text").attrs({class:"whiskerText body-1",x:.5*this.fontSize,y:this.$parent.containerHeight*this.bottomPosition,fill:C["o"](this.$store.distributionColor.ensemble).darker(1)}).style("stroke-width","1").text("Min: "+q(t))},maxText(){if(this.$store.showTarget){let t=this.targetData.max;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth-9*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.distributionColor.target).darker(1)}).style("stroke-width","1").text("Max:"+q(t))}let t=this.data.max;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth-9*this.fontSize,y:this.$parent.containerHeight*this.bottomPosition,fill:C["o"](this.$store.distributionColor.ensemble).darker(1)}).style("stroke-width","1").text("Max:"+q(t))},medianText(){if(this.$store.showTarget){let t=this.targetData.q2;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth/2-4.5*this.fontSize,y:this.$parent.containerHeight*this.topPosition,fill:C["o"](this.$store.distributionColor.target).darker(1)}).style("stroke-width","1").text("Med.:"+q(t))}let t=this.data.q2;this.g.append("text").attrs({class:"whiskerText body-1",x:this.$parent.containerWidth/2-4.5*this.fontSize,y:this.$parent.containerHeight*this.bottomPosition,fill:C["o"](this.$store.distributionColor.ensemble).darker(1)}).style("stroke-width","1").text("Med.:"+q(t))},qTexts(){this.q1Text(),this.q3Text()},q1Text(){this.g.append("text").attrs({class:"whiskerText",x:this.$parent.containerWidth/3,y:this.informationHeight*this.topPosition,fill:C["o"](this.fill).darker(1)}).style("stroke-width","2").text("q1: "+q(this.q.q1))},q3Text(){this.g.append("text").attrs({class:"whiskerText",x:this.$parent.boxWidth/3*2,y:this.informationHeight*this.topPosition,fill:C["o"](this.fill).darker(1)}).style("stroke-width","1").text("q3: "+q(this.q.q3))},formatName(t){if(t.length<20)return t;let e=this.trunc(t,20);return e},clear(){this.g.selectAll(".whiskerText").remove(),this.g.selectAll(".whisker").remove(),this.g.selectAll(".median").remove()}}},Zs=Qs,Js=Object(x["a"])(Zs,Ks,Us,!1,null,null,null),ti=Js.exports,ei=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"outlier"})},si=[],ii={name:"Outliers",data:()=>({paddingTop:10,textOffset:40,fontSize:10,outlierRadius:4,informationHeight:70}),created(){this.id="outliers-"+this.callsiteID},methods:{init(t,e,s,i,a,r,o,l,n){this.q=t,this.targetq=e,this.ensembleWhiskerIndices=s,this.targetWhiskerIndices=i,this.d=a,this.targetd=r,this.xScale=o,this.callsite=l,this.svg=C["u"]("#boxplot-"+l.id),this.g=this.svg.select(".outlier").attrs({transform:"translate(0, "+this.paddingTop+")"}),this.height=this.$parent.containerHeight,this.width=this.$parent.containerWidth,this.boxHeight=this.height-this.paddingTop-this.informationHeight,this.boxWidth=this.width,this.ensembleOutliers(),this.$store.showTarget&&n&&this.targetOutliers(),this.$parent.$refs.ToolTip.init("boxplot-"+l.id)},groupByBand(t,e){let s,i,a,r,o=[],l=0,n=0,h=0;for(let d=0;d<t.length;d+=1){let c=t[d];0==d&&(l=c.x,s=[],i=[],a=[],r=[]);let u=Math.abs(c.x-l);u<=e?(i.push(c.x),s.push(c.value),a.push(c.dataset),r.push(c.rank),n+=1):u>e&&(o.push({values:s,x:i,count:n,ranks:r,datasets:a}),n>h&&(h=n),s=[],i=[],a=[],r=[],s.push(c.value),i.push(c.x),a.push(c.dataset),r.push(c.rank),n=1,l=c.x),d==t.length-1&&(u>e?o.push({values:s,x:i,datasets:a,ranks:r,count:n}):u>e&&(s=[],i=[],a=[],r=[],s.push(c.value),i.push(c.x),r.push(c.rank),a.push(c.dataset),n=1,o.push({values:s,x:i,datasets:a,ranks:r,count:n})))}return{circles:o,max_count:h}},groupOutliers(t,e,s){const i=e**2,a=t.map(t=>{let e=this.xScale(t.value);return{x:e,value:t.value,rank:t.rank,dataset:t.dataset}}).sort((t,e)=>t.x-e.x),r=.001;let o=null,l=null;function n(t,e){let s=o;while(s){if(i-r>(s.x-t)**2+(s.y-e)**2)return!0;s=s.next}return!1}for(const c of a){while(o&&o.x<c.x-i)o=o.next;if(n(c.x,c.y=0)){let t=o;c.y=1/0;do{let e=t.y+Math.sqrt(i-(t.x-c.x)**2);e<c.y&&!n(c.x,e)&&(c.y=e),t=t.next}while(t)}c.next=null,null===o?o=l=c:l=l.next=c}let h=this.groupByBand(a,this.$store.bandWidth);"ensemble"==s&&(this.max_count=h["max_count"]);let d=h["circles"];return d},cleanUpEmptyOutliers(t){let e=[];for(let s=0;s<t.length;s+=1)0!=t[s].count&&e.push(t[s]);return e},ensembleOutliers(){this.$store.bandWidth=10;let t=this,e=this.$store.callsites["ensemble"][this.callsite.name][this.$store.selectedMetric]["outliers"],s=[];for(let i=0;i<e["values"].length;i+=1)0!=e["values"][i]&&s.push({value:e["values"][i],dataset:e["datasets"][i],rank:e["ranks"][i]});this.ensemble_outliers=this.groupOutliers(s,this.outlierRadius,"ensemble"),this.outlier=this.g.selectAll(".ensemble-outlier").data(this.ensemble_outliers).join("circle").attrs({r:t=>t.count/this.max_count+4,cx:t=>t.x[0],cy:t=>this.boxHeight/2+this.informationHeight,class:"ensemble-outlier"}).style("opacity",1).style("fill",this.$store.distributionColor.ensemble).on("click",e=>{t.$parent.$parent.selectedOutlierRanks=e["ranks"].sort((t,e)=>t-e),t.$parent.$parent.selectedOutlierDatasets=e["datasets"].filter((t,e,s)=>s.indexOf(t)===e),console.log(t.$parent.$parent.selectedOutlierRanks)}).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderOutliers(e)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})},targetOutliers(){let t=this,e=this.$store.callsites[this.$store.selectedTargetDataset][this.callsite.name],s=[];if(void 0!=e){s=e[this.$store.selectedMetric]["outliers"];let i=[];for(let t=0;t<s["values"].length;t+=1)0!=s["values"][t]&&i.push({value:s["values"][t],dataset:s["datasets"][t],rank:s["ranks"][t]});this.target_outliers=this.groupOutliers(i,this.$store.bandWidth,"target"),this.outlier=this.g.selectAll(".target-outlier").data(this.target_outliers).join("circle").attrs({r:t=>0==this.max_count?0:t.count/this.max_count+4,cx:t=>t.x[0],cy:t=>this.boxHeight/2-this.informationHeight/4,class:"target-outlier"}).style("opacity",1).style("fill",this.$store.distributionColor.target).on("click",e=>{t.$parent.$parent.selectedOutlierRanks=e["ranks"].sort((t,e)=>t-e),t.$parent.$parent.selectedOutlierDatasets=e["datasets"].filter((t,e,s)=>s.indexOf(t)===e)}).on("mouseover",e=>{t.$parent.$refs.ToolTip.renderOutliers(e)}).on("mouseout",e=>{t.$parent.$refs.ToolTip.clear()})}else this.target_outliers=[]},clear(){this.g.selectAll(".ensemble-outlier").remove(),this.g.selectAll(".target-outlier").remove()}}},ai=ii,ri=Object(x["a"])(ai,ei,si,!1,null,null,null),oi=ri.exports,li=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip-auxiliary-function"}})},ni=[],hi={name:"ToolTip",components:{},data:()=>({textCount:0,textxOffset:20,textyOffset:20,textPadding:18,offset:10,fontSize:12}),methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+t),this.height=80,this.halfWidth=document.getElementById(this.id).clientWidth/2,this.halfHeight=document.getElementById(this.id).clientHeight/2},addText(t){this.toolTipText=this.toolTipDiv.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"toolTipContent",x:()=>this.mousePosX>this.halfWidth?this.mousePosX-this.halfWidth+this.textxOffset+"px":this.mousePosX+this.textxOffset+"px",y:()=>this.mousePosY>this.halfHeight?this.mousePosY+this.textyOffset+this.textPadding*this.textCount-this.halfHeight+"px":this.mousePosY+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t),this.textCount+=1},quartiles(){this.addText("Q1: "+G(this.data.q1)),this.addText("Q3: "+G(this.data.q3))},outliers(){this.addText(this.data.count+" outliers")},drawRect(t,e){this.clear(),this.width=t*this.fontSize;C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipRect=this.toolTipDiv.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:e*this.fontSize,x:()=>this.mousePosX>this.halfWidth?this.mousePosX-this.halfWidth+"px":this.mousePosX+"px",y:()=>this.mousePosY>this.halfHeight?this.mousePosY-this.halfHeight+"px":this.mousePosY+"px"})},renderQ(t){this.data=t,this.drawRect(13,4),this.quartiles()},renderOutliers(t){this.data=t,this.drawRect(10,4),this.outliers()},trunc(t,e){return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},di=hi,ci=Object(x["a"])(di,li,ni,!1,null,null,null),ui=ci.exports,fi={name:"BoxPlot",props:["callsite","width","height","showTarget"],data:()=>({id:"",boxContainerID:"",markerContainerID:"",outlierContainerID:"",padding:{top:10,bottom:10,left:10,right:10},targetBoxWidth:0,targetBoxHeight:0,targetBoxFill:"",targetBoxX:0,targetBoxY:0,containerHeight:150,containerWidth:0,parentID:"",informationHeight:70,outlierHeight:20,rectHeight:0,centerLinePosition:0,boxHeight:0,boxWidth:0}),components:{Box:Xs,Outliers:oi,Markers:ti,ToolTip:ui},mounted(){this.init();let t=this;E.$on("ensemble-refresh-boxplot",e=>{t.clear(),t.init()})},created(){this.id="boxplot-"+this.callsite.id},methods:{init(){this.containerHeight=150,this.containerWidth=this.$parent.boxplotWidth-2*this.padding.right-1*this.padding.left,this.boxHeight=this.containerHeight-this.informationHeight,this.boxWidth=this.containerWidth,this.boxPosition=this.informationHeight/2+this.outlierHeight/2,this.centerLinePosition=(this.boxHeight-this.informationHeight/4)/2,this.rectHeight=this.boxHeight-this.informationHeight/4-this.outlierHeight/4,this.process(this.callsite),this.svg=C["u"]("#boxplot-"+this.callsite.id).attrs({width:this.containerWidth,height:this.containerHeight});let t=Math.min(this.q.min,this.targetq.min),e=Math.max(this.q.max,this.targetq.max);this.xScale=C["q"]().domain([t,e]).range([.05*this.containerWidth,this.containerWidth-.05*this.containerWidth]),this.visualize(this.callsite)},process(t){this.ensemble_data=this.$store.callsites["ensemble"][t.name][this.$store.selectedMetric]["q"],void 0!=this.$store.callsites[this.$store.selectedTargetDataset][t.name]?this.target_data=this.$store.callsites[this.$store.selectedTargetDataset][t.name][this.$store.selectedMetric]["q"]:this.target_data=[0,0,0,0,0],this.q=this.qFormat(this.ensemble_data),this.targetq=this.qFormat(this.target_data)},qFormat(t){let e={min:t[0],q1:t[1],q2:t[2],q3:t[3],max:t[4]};return e},visualize(t){this.$refs.Box.init(t,this.q,this.targetq,this.xScale,this.showTarget),this.$refs.Markers.init(t,this.q,this.targetq,this.xScale,this.showTarget),this.$refs.Outliers.init(this.q,this.targetq,this.ensembleWhiskerIndices,this.targetWhiskerIndices,this.d,this.targetd,this.xScale,this.callsite,this.showTarget)},clear(){this.$refs.Box.clear(),this.$refs.Markers.clear(),this.$refs.Outliers.clear()}}},mi=fi,pi=Object(x["a"])(mi,qs,Ws,!1,null,null,null),gi=pi.exports,xi={name:"CallsiteCorrespondence",components:{BoxPlot:gi},data:()=>({selected:{},id:"auxiliary-function-overview",people:[],message:"Call Site Correspondence",callsites:[],dataReady:!1,numberOfIntersectionCallsites:0,numberOfDifferenceCallsites:0,firstRender:!0,padding:{top:0,right:10,bottom:0,left:10},textOffset:25,boxplotHeight:340,boxplotWidth:0,duration:300,iqrFactor:.15,outlierRadius:4,targetOutlierList:{},outlierList:{},callsiteIDMap:{},settings:[{title:"Sort by Inclusive runtime"},{title:"Sort by Exclusive Runtime"}],compareMode:!1,selectedModule:"",selectedCallsite:"",informationHeight:70,revealCallsites:[],selectedMetric:"",targetMeans:{},targetVariance:{},targetStandardDeviation:{},ensembleMeans:{},ensembleVariance:{},ensembleStandardDeviation:{},targetColor:"",differenceCallsites:{},intersectionCallsites:{},isModuleSelected:!1,isCallsiteSelected:!1,isEntryFunctionSelected:"unselect-callsite",isCalleeSelected:"unselect-callsite",showSplitButton:"false",selectClassName:{},selectedOutlierRanks:{},selectedOutlierDatasets:{},showKNCCallsite:{},showuKNCCallsite:{},selectedMode:"Single"}),mounted(){let t=this;E.$on("highlight-dataset",e=>{let s=e["dataset"];t.$store.showTarget&&t.highlightCallsitesByDataset(s)}),E.$on("highlight-datasets",e=>{console.log("[Interaction] Highlighting the datasets :",e),t.highlight(e)}),E.$on("ensemble-select-module",e=>{let s=e["module"];this.isModuleSelected=!0,t.selectModule(s)}),E.$on("callsite-information-sort",e=>{let s=t.$store.selectedRuntimeSortBy;t.differenceCallsites=t.sortByAttribute(t.knc["difference"],s),t.intersectionCallsites=t.sortByAttribute(t.knc["intersection"],s)})},methods:{init(){if(this.firstRender){this.width=document.getElementById(this.id).clientWidth;let t="Ensemble"==this.$store.selectedMode?.65:1;this.height=t*this.$store.viewHeight,this.boxplotWidth=this.width-this.padding.left-this.padding.right,document.getElementById(this.id).style.maxHeight=this.height+"px",this.firstRender=!1}this.visualize()},visualize(){this.setStates(),this.boxplotByMetric()},setStates(){this.callsites=this.$store.callsites["ensemble"],this.targetCallsites=this.$store.callsites[this.$store.selectedTargetDataset],this.knc=this.KNC(),this.numberOfDifferenceCallsites=Object.keys(this.knc["difference"]).length,this.numberOfIntersectionCallsites=Object.keys(this.knc["intersection"]).length,this.differenceCallsites=this.sortByAttribute(this.knc["difference"],this.$store.selectedMetric),this.intersectionCallsites=this.sortByAttribute(this.knc["intersection"],this.$store.selectedMetric),this.intersectionCallsites=this.hideAllCallsites(this.intersectionCallsites),this.differenceCallsites=this.hideAllCallsites(this.differenceCallsites),this.selectedModule=this.$store.selectedModule,this.selectedMode=this.$store.selectedMode,this.selectedCallsite=this.$store.selectedCallsite,this.selectedMetric=this.$store.selectedMetric,"Ensemble"==this.$store.selectedMetric?(this.ensembleColor=C["o"](this.$store.distributionColor.ensemble).darker(1),this.targetColor=C["o"](this.$store.distributionColor.target).darker(1)):(this.ensembleColor=this.$store.runtimeColor.textColor,this.targetColor=this.$store.runtimeColor.textColor)},boxplotByMetric(){for(let t in this.callsites)void 0!=this.targetCallsites[t]?(this.targetMeans[t]=q(this.targetCallsites[t][this.$store.selectedMetric]["mean_time"]),this.targetVariance[t]=q(this.targetCallsites[t][this.$store.selectedMetric]["variance"]),this.targetStandardDeviation[t]=q(this.targetCallsites[t][this.$store.selectedMetric]["std_deviation"]),this.ensembleMeans[t]=q(this.callsites[t][this.$store.selectedMetric]["mean_time"]),this.ensembleVariance[t]=q(this.callsites[t][this.$store.selectedMetric]["variance"]),this.ensembleStandardDeviation[t]=q(this.callsites[t][this.$store.selectedMetric]["std_deviation"])):(this.targetMeans[t]=0,this.targetVariance[t]=0,this.targetStandardDeviation[t]=0,this.ensembleMeans[t]=0,this.ensembleVariance[t]=0,this.ensembleStandardDeviation[t]=0),this.selectClassName[t]="unselect-callsite"},borderColorByMetric(){for(let t in this.intersectionCallsites){let e=this.intersectionCallsites[t],s=e[this.$store.selectedMetric]["mean_time"],i="callsite-information-"+e.id;document.getElementById(i).style.borderColor=this.$store.color.getColorByValue(s)}},getID(t){return"callsite-correspondence-"+t},changeSelectedClassName(){event.stopPropagation();let t=event.currentTarget.id;"select-callsite"==this.selectClassName[t]?(this.revealCallsites.splice(this.revealCallsites.indexOf(t),1),event.target.className="flex text-xs-center unselect-callsite",this.selectClassName[t]="unselect-callsite"):(this.selectClassName[t]="select-callsite",event.target.className="flex text-xs-center select-callsite",this.revealCallsites.push(t)),0==this.revealCallsites.length?this.switchIsSelectedCallsite(!1):this.switchIsSelectedCallsite(!0),console.debug("Selected callsites: ",this.revealCallsites)},switchIsSelectedCallsite(t){this.isCallsiteSelected=t},switchIsSelectedModule(t){this.isModuleSelected=t},selectedClassName(t){return this.selectClassName[t]},formatModule(t){return t.length<10?t:this.trunc(t,10)},formatName(t){if(t.length<25)return t;let e=z(t,25);return e},formatNumberOfHops(t){return void 0==t||void 0==t[0]?"-":t[0]-1},formatRuntime(t){let e=C["g"](".2"),s=e(t)+" μs";return s},KNC(){let t=new Set(Object.keys(this.$store.callsites["ensemble"])),e=new Set(Object.keys(this.$store.callsites[this.$store.selectedTargetDataset])),s=new Set([...t].filter(t=>!e.has(t))),i=new Set([...t].filter(t=>e.has(t)));return{difference:Array.from(s),intersection:Array.from(i)}},showAllCallsites(t){for(let e=0;e<t.length;e++)t[e].reveal=!0},hideAllCallsites(t){for(let e in t)t[e].reveal=!1;return t},showIntersectionBoxPlot(t){event.stopPropagation();let e=event.currentTarget.id;console.log("Toggling",e),this.intersectionCallsites[e].reveal=!0,E.$emit("show-boxplot",this.intersectionCallsites[e])},closeIntersectionBoxPlot(t){event.stopPropagation();let e=event.currentTarget.id;E.$emit("hide-boxplot",this.intersectionCallsites[e])},clear(){},dataset(t){return this.labels[t]},clickCallsite(t){t.stopPropagation();t.currentTarget.id;this.$socket.emit("reveal_callsite",{mode:this.$store.selectedMode,reveal_callsites:this.revealCallsites,datasets:this.$store.selectedDatasets}),E.$emit("reveal-callsite")},showEntryFunctions(t){t.stopPropagation(),"unselect-callsite"==this.isEntryFunctionSelected?(this.isEntryFunctionSelected="select-callsite",this.isCalleeSelected="unselect-callsite"):this.isEntryFunctionSelected="unselect-callsite",this.showSplitButton="true"},showExitFunctions(t){t.stopPropagation(),"unselect-callsite"==this.isCalleeSelected?(this.isCalleeSelected="select-callsite",this.isEntryFunctionSelected="unselect-callsite"):this.isCalleeSelected="unselect-callsite",this.showSplitButton="true"},trunc(t,e){return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t},selectModule(t){let e=this.$store.moduleCallsiteMap["ensemble"][t];this.differenceCallsites={},this.knc["difference"].forEach(t=>{e.indexOf(t)>-1&&(this.differenceCallsites[t]=this.$store.callsites["ensemble"][t])}),this.numberOfDifferenceCallsites=Object.keys(this.differenceCallsites).length,this.intersectionCallsites={},this.knc["intersection"].forEach(t=>{e.indexOf(t)>-1&&(this.intersectionCallsites[t]=this.$store.callsites["ensemble"][t])}),this.numberOfIntersectionCallsites=Object.keys(this.intersectionCallsites).length},selectCallsitesByModule(t){this.selectedModule=t,this.selectedCallsite="";let e=Object.keys(this.$store.callsites[this.$store.selectedTargetDataset]),s=this.$store.callsites["ensemble"];for(let a in e)s.hasOwnProperty(a)&&(document.getElementById(s[a].id).style.opacity=.2,document.getElementById(s[a].id).style.borderStyle="solid");let i=this.$store.moduleCallsiteMap[t];for(let a in i)s.hasOwnProperty(a)&&(document.getElementById(s[a].id).style.opacity=1,document.getElementById(s[a].id).style.borderStyle="dotted")},sortByAttribute(t,e){let s=this,i=t.map((function(t){return[t,s.callsites[t]]}));return"Exclusive"==e||"Inclusive"==e?i=i.sort((function(t,s){return s[1][e]["mean_time"]-t[1][e]["mean_time"]})):"Standard Deviation"==e&&i.sort((function(t,e){return e[1][s.$store.selectedMetric]["std_deviation"]-t[1][s.$store.selectedMetric]["std_deviation"]})),t=i.reduce((function(t,e){return t[e[0]]=e[1],t}),{}),t},getSelectedOutlierDatasets(t){return this.selectedOutlierDatasets[t]},getSelectedOutlierRanks(t){return this.selectedOutlierRanks[t]},split(){"select-callsite"==this.isEntryFunctionSelected?(this.$socket.emit("split_by_entry_callsites",{mode:this.$store.selectedMode,selectedModule:this.$store.selectedModule,datasets:this.$store.selectedDatasets}),E.$emit("reveal-callsite")):"select-callsite"==this.isCalleeSelected&&(this.$socket.emit("split_by_callees",{mode:this.$store.selectedMode,selectedModule:this.$store.selectedModule,datasets:this.$store.selectedDatasets}),E.$emit("reveal-callsite"))}}},bi=xi,yi=(s("183b"),Object(x["a"])(bi,Gs,Ls,!1,null,null,null)),vi=yi.exports,$i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{attrs:{id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")]),s("v-spacer"),s("span",{staticClass:"component-info"},[t._v(" Number of "+t._s(t.selectedPropLabel)+" = "+t._s(t.selectedPropSum)+" ")])],1),s("svg",{attrs:{id:t.svgID}}),s("ToolTip",{ref:"ToolTip"})],1)},Ci=[],Mi=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip-ensemble-histogram"}})},_i=[],Ti={name:"ToolTip",components:{},data:()=>({id:"",textCount:0,textxOffset:20,textyOffset:20,textPadding:18,offset:10,fontSize:12}),sockets:{tooltip(t){this.render(t)}},methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+this.id),this.height=80,this.halfWidth=document.getElementById(this.id).clientWidth/2,this.halfHeight=document.getElementById(this.id).clientHeight/2},addText(t){this.toolTipText=this.toolTipDiv.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"toolTipContent",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+this.textxOffset+"px":this.mousePosX+this.textxOffset+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY+this.textyOffset+this.textPadding*this.textCount-this.height+"px":this.mousePosY+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t),this.textCount+=1},info(){this.addText("Count: "+this.data)},render(t){this.clear(),this.data=t,this.width=10*this.fontSize;C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipRect=this.toolTipDiv.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:"50",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+"px":this.mousePosX+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY-this.height+"px":this.mousePosY+"px"}),this.info()},trunc(t,e){return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},ki=Ti,wi=Object(x["a"])(ki,Mi,_i,!1,null,null,null),Si=wi.exports,Di={name:"EnsembleHistogram",components:{ToolTip:Si},props:[],data:()=>({data:[],width:null,height:null,padding:{top:10,right:10,bottom:10,left:15},dataset_index:[],id:"ensemble-histogram-view",svgID:"ensemble-histogram-view-svg",firstRender:!0,xVals:[],freq:[],selectedColorBy:"Inclusive",MPIcount:0,message:"Runtime Distribution",paddingFactor:3.5,thisNode:"",selectedPropLabel:"",selectedPropSum:0,x_max_exponent:0,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹"}),mounted(){let t=this;E.$on("ensemble-histogram",(function(e){console.log("Ensemble Histogram: ",e["module"]),void 0!=e["callsite"]?t.thisNode=e["module"]+"="+e["callsite"]:t.thisNode=e["module"],t.visualize(e["module"])}))},methods:{init(){this.width=.25*window.innerWidth,this.height=.33*this.$store.viewHeight,this.boxWidth=this.width-1*(this.padding.right+this.padding.left),this.boxHeight=this.height-2*(this.padding.top+this.padding.bottom),this.xAxisHeight=this.boxWidth-(this.paddingFactor+1)*this.padding.left,this.yAxisHeight=this.boxHeight-(this.paddingFactor+1)*this.padding.left,this.svg=C["u"]("#"+this.svgID).attrs({width:this.boxWidth,height:this.boxHeight,transform:"translate("+this.padding.left+","+this.padding.top+")"}),E.$emit("ensemble-histogram",{module:this.$store.selectedModule,dataset:this.$store.runNames})},dataProcess(t){let e=[],s=0,i=0;s=t["x_min"],i=t["x_max"];let a=(i-s)/this.$store.selectedMPIBinCount;0==a&&(a=1);for(let r=0;r<this.$store.selectedBinCount;r++)e.push(s+r*a);return[t["x"],t["y"],e]},setupScale(t){let e=this.$store.modules[this.$store.selectedTargetDataset][t],s=this.$store.modules[this.$store.selectedTargetDataset][t],i=e[this.$store.selectedMetric]["prop_histograms"][this.$store.selectedProp]["ensemble"],a=this.dataProcess(i);this.xVals=a[0],this.freq=a[1],this.axis_x=a[2],this.binContainsProcID=a[3],this.logScaleBool=!1;let r=!0;if(void 0==s)r=!1;else{const t=s[this.$store.selectedMetric]["prop_histograms"][this.$store.selectedProp]["target"],e=this.dataProcess(t);this.targetXVals=e[0],this.targetFreq=e[1],this.target_axis_x=e[2],this.target_binContainsProcID=e[3],r=!0}return this.rankCount=parseInt(this.$store.numOfRanks["ensemble"]),this.xScale=C["p"]().domain(this.xVals).rangeRound([0,this.xAxisHeight]),"Linear"==this.$store.selectedScale?(this.yScale=C["q"]().domain([0,C["k"](this.freq)]).range([this.yAxisHeight,this.padding.top]),this.logScaleBool=!1):"Log"==this.$store.selectedScale&&(this.yScale=C["r"]().domain([.1,C["k"](this.freq)]).range([this.yAxisHeight,this.padding.top]),this.logScaleBool=!0),r},visualize(t){this.clear();let e=this.setupScale(t);this.ensembleBars(),this.xAxis(),this.yAxis(),this.setTitle(),this.$store.showTarget&&e&&this.targetBars(),this.$refs.ToolTip.init(this.svgID)},setTitle(){"rank"==this.$store.selectedProp?this.selectedPropLabel="Ranks":"name"==this.$store.selectedProp?this.selectedPropLabel="Callsites":"dataset"==this.$store.selectedProp&&(this.selectedPropLabel="Runs"),this.selectedPropSum=this.freq.reduce((t,e)=>t+e)},clear(){C["v"](".dist-histogram-bar").remove(),C["v"](".dist-histogram-target").remove(),C["v"](".dist-histogram-others").remove(),C["u"](".x-axis").remove(),C["u"](".y-axis").remove(),C["v"](".binRank").remove(),C["v"](".lineRank").remove(),C["v"](".target_lineRank").remove(),C["v"](".tick").remove(),C["v"](".histogram-axis-label").remove(),this.$refs.ToolTip.clear()},targetBars(){let t=this;this.svg.selectAll(".dist-target").data(this.targetFreq).enter().append("rect").attr("class","dist-histogram-bar dist-target").attrs({x:(t,e)=>this.xScale(this.targetXVals[e]),y:(t,e)=>this.yScale(t),width:t=>this.xScale.bandwidth(),height:t=>Math.abs(this.yAxisHeight-this.yScale(t)),fill:this.$store.distributionColor.target,opacity:1,"stroke-width":"0.2px",stroke:"#202020",transform:"translate("+this.paddingFactor*this.padding.left+",0)"}).on("mouseover",(function(e,s){t.$refs.ToolTip.render(e)})).on("mouseout",(function(e,s){t.$refs.ToolTip.clear()}))},ensembleBars(){let t=this;this.svg.selectAll(".dist-ensemble").data(this.freq).enter().append("rect").attr("class","dist-histogram-bar dist-ensemble").attrs({x:(t,e)=>this.xScale(this.xVals[e]),y:(t,e)=>this.yScale(t),width:t=>this.xScale.bandwidth(),height:t=>Math.abs(this.yAxisHeight-this.yScale(t)),fill:e=>{let s=t.$store.distributionColor.ensemble;return s},opacity:1,"stroke-width":"0.2px",stroke:"#202020",transform:"translate("+this.paddingFactor*this.padding.left+",0)"}).on("mouseover",(function(e,s){t.$refs.ToolTip.render(e)})).on("mouseout",(function(e,s){t.$refs.ToolTip.clear()}))},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") "+this.$store.selectedMetric+" Runtime (μs)";this.svg.append("text").attrs({class:"histogram-axis-label",x:this.boxWidth-this.padding.left,y:this.yAxisHeight+3*this.padding.top}).style("font-size","12px").style("text-anchor","end").text(e)},xAxis(){let t=this;this.addxAxisLabel();const e=C["b"](this.xScale).ticks(5).tickFormat((e,s)=>{if(s%3==0){let s=W(e,t.x_max_exponent);return""+s[0]}}),s=this.svg.append("g").attrs({class:"x-axis",transform:"translate("+this.paddingFactor*this.padding.left+","+this.yAxisHeight+")"}).call(e);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.5),s.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")},yAxis(){const t=C["c"](this.yScale).ticks(10).tickFormat((t,e)=>{if("rank"==this.$store.selectedProp){if(1==t)return t;if(t%10==0)return t}else if("dataset"==this.$store.selectedProp){if(t%1==0)return t}else if("name"==this.$store.selectedProp&&t%1==0)return t});let e="";"name"==this.$store.selectedProp?e="Number of Callsites":"dataset"==this.$store.selectedProp?e="Number of Runs":"rank"==this.$store.selectedProp?e="Number of Ranks":"all_ranks"==this.$store.selectedProp&&(e="Number of Processes"),this.svg.append("text").attrs({transform:"rotate(-90)",class:"histogram-axis-label",x:-this.padding.top,y:this.padding.left}).style("font-size","12px").style("text-anchor","end").text(e);const s=this.svg.append("g").attrs({class:"y-axis",transform:"translate("+this.paddingFactor*this.padding.left+", 0)"}).call(t);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.2),s.selectAll("text").style("font-size","12px").style("font-family","sans-serif").style("font-weight","lighter")}}},Pi=Di,Ei=Object(x["a"])(Pi,$i,Ci,!1,null,null,null),Ii=Ei.exports,Bi=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")])],1),s("span",{staticClass:"component-info"},[t._v(" Module = "+t._s(t.formatModule(t.selectedModule))+" ")]),s("ToolTip",{ref:"ToolTip"})],1)},Ai=[],Oi=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{staticClass:"tooltip"})},Hi=[],Ri={name:"ToolTip",components:{},data:()=>({id:"",textCount:0,textxOffset:20,textyOffset:20,textPadding:18,offset:10,fontSize:12}),sockets:{tooltip(t){this.render(t)}},methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+this.id),this.height=80,this.halfWidth=document.getElementById(this.id).clientWidth/2,this.halfHeight=document.getElementById(this.id).clientHeight/2},addText(t){this.toolTipText=this.toolTipDiv.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"toolTipContent",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+this.textxOffset+"px":this.mousePosX+this.textxOffset+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY+this.textyOffset+this.textPadding*this.textCount-this.height+"px":this.mousePosY+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t),this.textCount+=1},info(){this.addText("Name: "+z(this.data.data.id,40));let t="";"Exclusive"==this.$store.selectedMetric?t="Exc.":"Inclusive"==this.$store.selectedMetric&&(t="Inc."),this.addText("Target "+t+" time: "+G(this.data.data.data[this.$store.selectedMetric]["max_time"]))},render(t){this.clear(),this.data=t,this.width=26*this.fontSize;C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipRect=this.toolTipDiv.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:"50",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+"px":this.mousePosX+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY-this.height+"px":this.mousePosY+"px"}),this.info()},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},Fi=Ri,Gi=Object(x["a"])(Fi,Oi,Hi,!1,null,null,null),Li=Gi.exports;class qi{constructor(){this.linkedList=new de}isEmpty(){return!this.linkedList.head}peek(){return this.linkedList.head?this.linkedList.head.value:null}enqueue(t){this.linkedList.append(t)}dequeue(){const t=this.linkedList.deleteHead();return t?t.value:null}toString(t){return this.linkedList.toString(t)}}var Wi={name:"ModuleHierarchy",components:{ToolTip:Li},props:[],data:()=>({margin:{top:5,right:5,bottom:5,left:5},level:[0,0],colorByAttr:"Inclusive",direction:["LR","TD"],selectedDirection:"TD",textTruncForNode:15,color:null,width:null,height:null,totalSize:0,b:{w:150,h:30,s:3,t:10},selectedSplitOption:{name:"split-caller"},splitOptions:[{name:"split-caller"},{name:"split-callee"},{name:"split-level"}],placeholder:"Split options",maxLevel:0,path_hierarchy:[],id:"",padding:0,message:"Supernode Hierarchy",offset:4,stroke_width:4,metric:"",selectedModule:"",svgID:"module-hierarchy-svg"}),watch:{level:{handler:function(t,e){this.update_level()},deep:!0}},mounted(){this.id="module-hierarchy-overview"},methods:{async init(){"Inclusive"==this.$store.selectedMetric?this.metric="max_time (inc)":"Exclusive"==this.$store.selectedMetric&&(this.metric="max_time"),this.selectedModule=this.$store.selectedModule;await m.POSTRequest("module_hierarchy",{module:this.$store.selectedModule,datasets:this.$store.selectedDatasets})},formatModule(t){return t.length<10?t:this.trunc(t,10)},setupSVG(){this.width=document.getElementById(this.id).clientWidth,this.height=.3*this.$store.viewHeight,this.icicleWidth=this.width-this.margin.right-this.margin.left,this.icicleHeight=this.height-this.margin.top-this.margin.bottom,this.hierarchySVG=C["u"]("#"+this.id).append("svg").attrs({id:this.svgID,width:this.icicleWidth+this.margin.right+this.margin.left+10,height:this.icicleHeight+this.margin.top+this.margin.bottom}),this.$refs.ToolTip.init(this.svgID)},update_maxlevels(t){let e=t["level"];for(const[s,i]of Object.entries(e))this.maxLevel<i&&(this.maxLevel=i,this.level=[0,i])},update_level(){this.clear();let t=[];if(this.minLevel=this.level[0],this.maxLevel=this.level[1],this.minLevel>this.maxLevel)return void console.error("Cannot generate icicle plot, min_level > max_level");for(let s=0;s<this.path_hierarchy.length;s+=1){let e=this.path_hierarchy[s][0].length;1==e||e>=this.minLevel||e<this.maxLevel?t.push(this.path_hierarchy[s]):console.log("TODO: ")}this.path_hierarchy=t;const e=this.buildHierarchy(this.path_hierarchy);this.drawIcicles(e)},bfs(t){const e=new qi;let s=t,i=s.id,a=this.$store.modules["ensemble"][i];s.data=a,e.enqueue(s);let r=!0,o=null;while(!e.isEmpty()){const t=e.dequeue();let s={};if(r){let e=t.id;s=this.$store.modules["ensemble"][e],r=!1}else{let e=t.id;s=this.$store.callsites["ensemble"][e]}t.data=s,t.data.count=e.length,t.hasOwnProperty("children")&&t["children"].forEach(t=>{e.enqueue(t)}),o=t}return t},update_from_graph(t){let e=this.bfs(t);this.drawIcicles(e)},trunc(t,e){return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t},clear(){C["v"](".icicleNode").remove(),C["v"](".icicleText").remove(),C["v"](".hierarchy-targetLines").remove(),C["v"](".linear-gradient").remove()},descendents(t){let e=[],s=[];s.push(t),e.push(t);while(0!=s.length)t=s.pop(),void 0!=t.children&&t.children.forEach((function(t){e.push(t),s.push(t)}));return e},partition(t){var e=this.width,s=this.height,i=0,a=!1,r=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=s/r,t.eachBefore(this.positionNode(s,r)),a&&t.eachBefore(this.roundNode),t},positionNode(t,e){let s=this;return function(i){i.children&&("Exclusive"==s.$store.selectedHierarchyMode?s.diceByValue(i,i.x0,t*(i.depth+1)/e,i.x1,t*(i.depth+2)/e):"Uniform"==s.$store.selectedHierarchyMode&&s.dice(i,i.x0,t*(i.depth+1)/e,i.x1,t*(i.depth+2)/e));var a=i.x0,r=i.y0,o=i.x1-s.padding,l=i.y1-s.padding;o<a&&(a=o=(a+o)/2),l<r&&(r=l=(r+l)/2),i.x0=a,i.y0=r,i.x1=o,i.y1=l}},roundNode(t){return t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1),t},dice(t,e,s,i,a){var r,o=t.children,l=-1,n=o.length;let h=0;while(++l<n)r=o[l],r.y0=s,r.y1=a,r.x0=t.x0+h,h+=(t.x1-t.x0)/n,r.x1=t.x0+h},diceByValue(t,e,s,i,a){let r=1;r=null==t.parent?this.$store.modules["ensemble"][t.data.id]["max_time"]:this.$store.callsites["ensemble"][t.data.id][this.metric];var o,l=t.children,n=-1,h=l.length,d=r&&(t.x1-t.x0)/r;while(++n<h)o=l[n],o.y0=s,o.y1=a,o.x0=e,o.x1=e+=o.data.data[this.metric]*d},drawIcicles(t){void 0!=this.hierarchy?this.clear():(this.setupSVG(),this.hierarchy=this.hierarchySVG.attrs({id:this.svgID})),C["u"]("#togglelegend").on("click",this.toggleLegend),this.hierarchy.append("svg:rect").attr("width",()=>"LR"==this.selectedDirection?this.icicleHeight:this.width).attr("height",()=>"LR"==this.selectedDirection?this.width-50:this.height-50).style("opacity",0);let e=C["h"](t),s=this.partition(e);this.nodes=this.descendents(s),this.setupModuleMeanGradients(),this.setupCallsiteMeanGradients(),this.addNodes(),this.addText(),this.$store.showTarget&&this.drawTargetLine(),C["u"]("#container").on("mouseleave",this.mouseleave),this.totalSize=e.value},setupCallsiteMeanGradients(){this.$store.selectedModule;let t=Object.keys(this.$store.callsites["ensemble"]),e="Horizontal";this.hist_min=0,this.hist_max=0;let s=this.$store.callsites["ensemble"];for(let a=0;a<t.length;a+=1){let e=t[a],i=s[e];this.hist_min=Math.min(this.hist_min,i[this.$store.selectedMetric]["gradients"]["hist"]["y_min"]),this.hist_max=Math.max(this.hist_max,i[this.$store.selectedMetric]["gradients"]["hist"]["y_max"])}for(let a=0;a<t.length;a+=1){let r=t[a],o=s[r];o.id;var i=C["u"]("#module-hierarchy-svg").append("defs");this.linearGradient=i.append("linearGradient").attr("id","mean-callsite-gradient-"+o.id).attr("class","linear-gradient"),"Horizontal"==e?this.linearGradient.attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%"):this.linearGradient.attr("x1","0%").attr("y1","0%").attr("x2","0%").attr("y2","100%");let l=o[this.$store.selectedMetric]["gradients"]["hist"]["x"],n=o[this.$store.selectedMetric]["gradients"]["hist"]["y"];for(let t=0;t<l.length;t+=1){let e=(t+t+1)/(2*l.length),s=n[t];this.linearGradient.append("stop").attr("offset",100*e+"%").attr("stop-color",this.$store.distributionColor.getColorByValue(s))}}},setupModuleMeanGradients(){let t=Object.keys(this.$store.modules["ensemble"]),e="Horizontal";this.hist_min=0,this.hist_max=0;let s=this.$store.modules["ensemble"];for(let a=0;a<t.length;a+=1){let e=t[a],i=s[e];this.hist_min=Math.min(this.hist_min,i[this.$store.selectedMetric]["gradients"]["hist"]["y_min"]),this.hist_max=Math.max(this.hist_max,i[this.$store.selectedMetric]["gradients"]["hist"]["y_max"])}for(let a=0;a<t.length;a+=1){let r=t[a],o=s[r];o.id;var i=C["u"]("#module-hierarchy-svg").append("defs");this.linearGradient=i.append("linearGradient").attr("id","mean-module-gradient-"+o.id).attr("class","linear-gradient"),"Horizontal"==e?this.linearGradient.attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%"):this.linearGradient.attr("x1","0%").attr("y1","0%").attr("x2","0%").attr("y2","100%");let l=o[this.$store.selectedMetric]["gradients"]["hist"]["x"],n=o[this.$store.selectedMetric]["gradients"]["hist"]["y"];for(let t=0;t<l.length;t+=1){let e=(t+t+1)/(2*l.length),s=n[t];this.linearGradient.append("stop").attr("offset",100*e+"%").attr("stop-color",this.$store.distributionColor.getColorByValue(s))}}},drawTargetLine(){let t=this.$store.selectedTargetDataset;for(let e=0;e<this.nodes.length;e++){let s=this.nodes[e].data,i=0,a=[],r=void 0;if(0==this.nodes[e].depth&&void 0!=this.$store.modules["ensemble"][s.id]){let e=this.$store.modules["ensemble"][s.id][this.$store.selectedMetric]["gradients"];i=e["dataset"]["mean"][t],a=e["hist"],r=e["dataset"]["position"][t]+1}else if(void 0!=this.$store.callsites["ensemble"][s.id]){let e=this.$store.callsites["ensemble"][s.id][this.$store.selectedMetric]["gradients"];i=e["dataset"]["mean"][t],a=e["hist"],r=e["dataset"]["position"][t]+1}a.x,a.y;let o=(this.nodes[e].x1-this.nodes[e].x0)/this.$store.selectedRunBinCount,l=this.nodes[e].x0+o*r-o/2;this.hierarchySVG.append("line").attrs({class:"hierarchy-targetLines",x1:l,y1:(this.nodes[e].y1-this.nodes[e].y0)*this.nodes[e].depth+this.offset,x2:l,y2:(this.nodes[e].y1-this.nodes[e].y0)*(this.nodes[e].depth+1)-this.offset,"stroke-width":5,stroke:this.$store.distributionColor.target})}},clearGuides(t){C["v"](".hierarchy-guideLines").remove()},drawGuides(t){let e=this.$store.selectedTargetDataset,s=(this.$store.modules,t.data),i=0,a=[];0==t.depth?(i=this.$store.modules[e][s.id]["gradients"][this.$store.selectedMetric]["dataset"][e],a=this.$store.modules["ensemble"][s.id]["gradients"][this.$store.selectedMetric]["hist"]):(i=this.$store.callsites[e][s.id]["gradients"][this.$store.selectedMetric]["dataset"][e],a=this.$store.callsites["ensemble"][s.id]["gradients"][this.$store.selectedMetric]["hist"]);let r=a.x,o=(a.y,(t.x1-t.x0)/this.$store.selectedRunBinCount);for(let l=0;l<r.length;l+=1){let e=o*l;this.hierarchySVG.append("line").attrs({class:"hierarchy-guideLines",x1:e,y1:(t.y1-t.y0)*t.depth,x2:e,y2:(t.y1-t.y0)*(t.depth+1),"stroke-width":3,stroke:"#202020"})}},addNodes(){this.hierarchy.selectAll(".icicleNode").data(this.nodes).enter().append("rect").attr("class","icicleNode").attr("id",t=>t.data.data.id).attr("x",t=>"LR"==this.selectedDirection?(Number.isNaN(t.y0),t.data.count*this.width/t.data.length):t.x0).attr("y",t=>"LR"==this.selectedDirection?t.x0+this.offset+this.stroke_width:t.y0+this.offset).attr("width",t=>"LR"==this.selectedDirection?Number.isNaN(t.y1-t.y0)?this.width/t.data.length-this.offset-this.stroke_width:t.y1-t.y0-this.offset-this.stroke_width:t.x1-t.x0-this.offset-this.stroke_width).attr("height",t=>"LR"==this.selectedDirection?t.x1-t.x0-this.offset:t.y1-t.y0-this.offset-this.stroke_width).style("fill",(t,e)=>{let s=void 0;return s=0==t.depth&&void 0!=this.$store.modules[this.$store.selectedTargetDataset][t.data.data.name]?"url(#mean-module-gradient-"+t.data.data.id+")":void 0!=this.$store.callsites[this.$store.selectedTargetDataset][t.data.data.name]?"url(#mean-callsite-gradient-"+t.data.data.id+")":this.$store.distributionColor.ensemble,s}).style("stroke",t=>{let e=t.data.data[this.$store.selectedMetric]["max_time"];return C["o"](this.$store.runtimeColor.getColorByValue(e))}).style("stroke-width",this.stroke_width).style("opacity",t=>t.exit?.5:1).on("click",this.click).on("mouseover",t=>{const e=(100*t.value/this.totalSize).toPrecision(3);this.percentageString=e+"%",e<.1&&(this.percentageString="< 0.1%");const s=this.getAncestors(t);C["v"](".icicleNode").style("opacity",.1),this.hierarchy.selectAll(".icicleNode").filter(t=>s.indexOf(t)>=0).style("opacity",1),this.$refs.ToolTip.render(t)}).on("mouseout",t=>{C["v"](".icicleNode").style("opacity",1)})},addText(){this.hierarchy.selectAll(".icicleText").data(this.nodes).enter().append("text").attr("class","icicleText").attr("transform",t=>"LR"==this.selectedDirection?"rotate(90)":"rotate(0)").attr("x",t=>"LR"==this.selectedDirection?(Number.isNaN(t.y0),t.data.count*this.width/t.data.length):t.x0+2*this.offset).attr("y",t=>"LR"==this.selectedDirection?t.x0:t.y0+2.5*(this.stroke_width+this.offset)).attr("width",t=>"LR"==this.selectedDirection?(Number.isNaN(t.y1-t.y0),this.width/t.data.length):this.width).style("fill",t=>{let e=this.$store.runtimeColor.setContrast(this.$store.runtimeColor.getColor(t));return e}).style("font-size","14px").text(t=>{if(t.y1-t.y0<10||t.x1-t.x0<50)return"";let e=t.data.id,s=(V(this.id,e)["width"],14),i=Math.floor((t.x1-t.x0)/s);return e=z(e,i),e})},click(t){let e=this.selectedSplitOption.name;C["v"](".icicleNode").style("opacity",.3);let s=this.getAncestors(t);this.hierarchy.selectAll(".icicleNode").filter(t=>s.indexOf(t)>=0).style("opacity",1),this.$socket.emit(e,{})},mouseleave(){C["u"]("#trail").style("visibility","hidden"),C["v"](".icicleNode").on("mouseover",null),C["v"](".icicleNode").transition().duration(1e3).style("opacity",1).each("end",(function(){}))},mouseover(t){this.$refs.ToolTip.render(t)},mouseout(t){this.$refs.ToolTip.clear()},getAncestors(t){const e=[];let s=t;while(s.parent)e.unshift(s),s=s.parent;return e.unshift(s),e},initializeBreadcrumbTrail(){document.getElementById(this.svgID).clientWidth;const t=C["u"]("#sequence").append("svg:svg").attr("width",this.icicleWidth).attr("height",50).attr("id","trail");t.append("svg:text").attr("id","endlabel").style("fill","#000")},breadcrumbPoints(t){const e=[];return e.push("0,0"),e.push(this.b.w+",0"),e.push(`${this.b.w+this.b.t},${this.b.h/2}`),e.push(`${this.b.w},${this.b.h}`),e.push("0,"+this.b.h),t>0&&e.push(`${this.b.t},${this.b.h/2}`),e.join(" ")},updateBreadcrumbs(t,e){const s=C["u"]("#trail").selectAll("g").data(t,t=>t.name+t.depth),i=s.enter().append("svg:g");i.append("svg:polygon").attr("points",this.breadcrumbPoints).style("fill",()=>"#f1f1f1"),i.append("svg:text").attr("x",(this.b.w+this.b.t)/2).attr("y",this.b.h/2).attr("dy","0.35em").attr("text-anchor","middle").text(t=>t.name),s.attr("transform",(t,e)=>`translate(${e*(this.b.w+this.b.s)}, 0)`),s.exit().remove(),C["u"]("#trail").select("#endlabel").attr("x",(t.length+.5)*(this.b.w+this.b.s)).attr("y",this.b.h/2).attr("dy","0.35em").attr("text-anchor","middle").text(e),C["u"]("#trail").style("visibility","")},toggleLegend(){const t=C["u"]("#legend");"hidden"==t.style("visibility")?t.style("visibility",""):t.style("visibility","hidden")}}},Ni=Wi,zi=Object(x["a"])(Ni,Bi,Ai,!1,null,null,null),Vi=zi.exports,ji=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-layout",{attrs:{row:"",wrap:"",id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")]),s("v-spacer")],1),s("span",{staticClass:"component-info"}),s("svg",{attrs:{id:t.svgID}}),s("ToolTip",{ref:"ToolTip"})],1)},Yi=[],Xi=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("g",{attrs:{id:"tooltip_scatterplot"}})},Ki=[],Ui={name:"ToolTip",data:()=>({id:"",textCount:0,textxOffset:20,textyOffset:20,textPadding:18,offset:10,fontSize:12}),methods:{init(t){this.id=t,this.toolTipDiv=C["u"]("#"+this.id).append("svg").attr("class","toolTipSVG"),this.toolTipG=this.toolTipDiv.append("g"),this.height=80,this.halfWidth=document.getElementById(this.id).clientWidth/2,this.halfHeight=document.getElementById(this.id).clientHeight/2},addText(t){this.toolTipText=this.toolTipG.append("text").style("font-family","sans-serif").style("font-size","").attrs({class:"toolTipContent",x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+this.textxOffset+"px":this.mousePosX+this.textxOffset+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY+this.textyOffset+this.textPadding*this.textCount-this.height+"px":this.mousePosY+this.textyOffset+this.textPadding*this.textCount+"px"}).text(t),this.textCount+=1},trunc(t,e){return t=t.replace(/<unknown procedure>/g,"proc "),t.length>e?t.substr(0,e-1)+"...":t},truncTimeLabel(t){return"Inclusive"==t?"Inc.":"Exclusive"==t?"Exc.":void 0},info(){this.addText("Callsite: "+z(this.data.callsite,10)),this.addText("Mean "+this.truncTimeLabel(this.$store.selectedMetric)+" Time: "+G(this.data.value)),this.addText("Run: "+this.data.run)},render(t){this.clear(),this.width=19*this.fontSize;var e=C["q"]().domain([2,11]).range([50,150]);this.mousePos=C["m"](C["u"]("#"+this.id).node()),this.mousePosX=this.mousePos[0],this.mousePosY=this.mousePos[1],this.toolTipG.attr("height",e(10)+"px"),this.toolTipRect=this.toolTipG.append("rect").attrs({class:"toolTipContent",fill:"white",stroke:"black",rx:"10px","fill-opacity":1,width:this.width,height:this.height,x:()=>this.mousePosX+this.halfWidth>document.getElementById(this.id).clientWidth?this.mousePosX-this.width+"px":this.mousePosX+"px",y:()=>this.mousePosY+this.halfHeight>document.getElementById(this.id).clientHeight?this.mousePosY-this.height+"px":this.mousePosY+"px"}),this.data=t,this.info()},clear(){this.textCount=0,C["v"](".toolTipContent").remove()}}},Qi=Ui,Zi=Object(x["a"])(Qi,Xi,Ki,!1,null,null,null),Ji=Zi.exports,ta={name:"EnsembleScatterplot",components:{ToolTip:Ji},data:()=>({padding:{top:10,right:10,bottom:15,left:15},xMin:0,xMax:0,yMin:0,yMax:0,firstRender:!0,xData:[],yData:[],nameData:[],id:"ensemble-scatterplot-view",svgID:"ensemble-scatterplot-view-svg",message:"Metric Correlation",boxOffset:20,settings:[{title:"Show Difference plot"},{title:"aaa"}],moduleUnDesirability:1,x_max_exponent:0,y_max_exponent:0,superscript:"⁰¹²³⁴⁵⁶⁷⁸⁹",includesTarget:!0,undesirability:{},maxUndesirability:0,maxVarianceCallsite:""}),mounted(){let t=this;E.$on("ensemble-scatterplot",(function(e){console.log("Ensemble Scatterplot: ",e),t.visualize(e["module"])}))},methods:{init(){this.width=.25*window.innerWidth,this.height=.33*this.$store.viewHeight,this.boxWidth=this.width-this.padding.right-this.padding.left,this.boxHeight=this.height-this.padding.top-this.padding.bottom,this.svg=C["u"]("#"+this.svgID).attr("width",this.boxWidth).attr("height",this.boxHeight-this.padding.top).attr("transform","translate("+this.padding.left+","+this.padding.top+")"),E.$emit("ensemble-scatterplot",{module:this.$store.selectedModule,dataset:this.$store.selectedDatasets})},preprocess(t,e){for(let s in t["mean"])this.yData.push(t["mean"][s]);for(let s in t["diff"])this.xData.push(t["diff"][s]),this.nameData.push(s)},visualize(t){this.firstRender||this.clear(),this.firstRender=!1,this.maxVarianceCallsite="",this.maxUndesirability=0,this.selectedModule=t,this.selectedEnsembleModuleData=this.$store.modules["ensemble"][this.selectedModule][this.$store.selectedMetric],this.ensembleProcess(),void 0!=this.$store.modules[this.$store.selectedTargetDataset][this.selectedModule]&&(this.selectedTargetModuleData=this.$store.modules[this.$store.selectedTargetDataset][this.selectedModule][this.$store.selectedMetric],this.targetProcess());let e=Math.max(this.xMax,this.xtargetMax),s=Math.min(this.xMin,this.xtargetMin),i=Math.max(this.yMax,this.ytargetMax),a=Math.min(this.yMin,this.ytargetMin);this.xScale=C["q"]().domain([s,e]).range([this.padding.left,this.xAxisHeight]),this.yScale=C["q"]().domain([a,i]).range([this.yAxisHeight,this.padding.top]),this.xAxis(),this.yAxis(),this.ensembleDots(),this.$store.showTarget&&void 0!=this.$store.modules[this.$store.selectedTargetDataset][this.selectedModule]&&this.targetDots(),this.setTitle(),this.$refs.ToolTip.init(this.svgID)},setTitle(){this.moduleUnDesirability=this.maxUndesirability},ensembleProcess(){let t=[],e=[];for(let a=0;a<this.$store.selectedDatasets.length;a+=1){let s=this.$store.moduleCallsiteMap["ensemble"][this.selectedModule];for(let i=0;i<s.length;i+=1){let r=s[i],o=this.$store.callsites[this.$store.selectedDatasets[a]][r];void 0!=o&&(t.push({callsite:r,val:o["Exclusive"]["mean_time"],run:this.$store.selectedDatasets[a]}),e.push({callsite:r,val:o["Inclusive"]["mean_time"],run:this.$store.selectedDatasets[a]}))}}let s,i=this.$store.modules["ensemble"][this.selectedModule];"mean"==this.$store.selectedScatterMode?s=this.scatterMean(t,e):"all"==this.$store.selectedScatterMode&&(s=this.scatterAll(i["time"],i["time (inc)"])),this.xMin=s[0],this.yMin=s[1],this.xMax=s[2],this.yMax=s[3],this.xArray=s[4],this.yArray=s[5],this.leastSquaresCoeff=this.leastSquares(this.xArray.slice(),this.yArray.slice()),this.regressionY=this.leastSquaresCoeff["y_res"],this.corre_coef=this.leastSquaresCoeff["corre_coef"],this.xAxisHeight=this.boxWidth-4*this.padding.left,this.yAxisHeight=this.boxHeight-4*this.padding.left},targetProcess(){let t,e=[],s=[],i=this.$store.moduleCallsiteMap[this.$store.selectedTargetDataset][this.selectedModule];for(let a=0;a<i.length;a+=1){let t=i[a],r=this.$store.callsites[this.$store.selectedTargetDataset][t];e.push({callsite:t,val:r["Exclusive"]["mean_time"],run:this.$store.selectedTargetDataset}),s.push({callsite:t,val:r["Inclusive"]["mean_time"],run:this.$store.selectedTargetDataset})}if(this.$store.selectedScatterMode="mean","mean"==this.$store.selectedScatterMode)t=this.scatterMean(e,s);else if("all"==this.$store.selectedScatterMode){let e=this.$store.modules[this.$store.selectedTargetDataset][this.selectedModule];t=this.scatterAll(e["time"],e["time (inc)"])}this.xtargetMin=t[0],this.ytargetMin=t[1],this.xtargetMax=t[2],this.ytargetMax=t[3],this.xtargetArray=t[4],this.ytargetArray=t[5]},scatterAll(t,e){let s=[],i=[],a=0,r=0,o=0,l=0;for(const[n,h]of Object.entries(t))r=Math.min(r,h),o=Math.max(o,h),s.push(h);for(const[n,h]of Object.entries(e))a=Math.min(a,h),l=Math.max(l,h),i.push(h);return[r,a,o,l,s,i]},scatterMean(t,e){let s=[],i=[],a=0,r=0,o=0,l=0;for(const[n,h]of Object.entries(t))r=Math.min(r,h.val),o=Math.max(o,h.val),s.push(h);for(const[n,h]of Object.entries(e))a=Math.min(a,h.val),l=Math.max(l,h.val),i.push(h);return[r,a,o,l,s,i]},leastSquares(t,e){for(var s=t.length,i=0,a=0,r=0,o=0,l=0;l<s;l++)i+=t[l],a+=e[l];i/=s,a/=s;var n=0,h=0;for(l=0;l<t.length;l++)n=t[l]-i,h=e[l]-a,r+=n*h,o+=n*n;var d=r/o,c=a-d*i;let u=[];for(l=0;l<t.length;l++)u.push(c+t[l]*d);var f=[],m=[],p=[];for(let k=0;k<s;k++)f.push(t[k]*e[k]),m.push(t[k]*t[k]),p.push(e[k]*e[k]);var g=0,x=0,b=0,y=0,v=0;for(let k=0;k<s;k++)g+=t[k],x+=e[k],b+=f[k],y+=m[k],v+=p[k];var $=s*b-g*x,C=s*y-g*g,M=s*v-x*x,_=Math.sqrt(C*M),T=$/_;return{y_res:u,corre_coef:T}},addxAxisLabel(){let t=this.xScale.domain()[1];this.x_max_exponent=N(t);this.superscript[this.x_max_exponent];let e="(e+"+this.x_max_exponent+") Exclusive Runtime (μs)";this.svg.append("text").attr("class","scatterplot-axis-label").attr("x",this.boxWidth-1*this.padding.right).attr("y",this.yAxisHeight+3*this.padding.top).style("font-size","12px").style("text-anchor","end").text(e)},xAxis(){this.addxAxisLabel();const t=C["b"](this.xScale).ticks(10).tickFormat((t,e)=>{if(e%3==0){let e=W(t,this.x_max_exponent);return""+e[0]}});var e=this.svg.append("g").attr("class","axis").attr("id","xAxis").attr("transform","translate("+3*this.padding.left+","+this.yAxisHeight+")").call(t);e.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),e.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px"),e.selectAll("text").style("font-size","14px").style("font-family","sans-serif").style("font-weight","lighter")},addyAxisLabel(){let t=this.yScale.domain()[1];this.y_max_exponent=N(t);this.superscript[this.y_max_exponent];let e="(e+"+this.y_max_exponent+") Inclusive Runtime (μs)";this.svg.append("text").attr("class","scatterplot-axis-label").attr("transform","rotate(-90)").attr("x",-this.padding.top).attr("y",this.padding.left).style("text-anchor","end").style("font-size","12px").text(e)},yAxis(){let t=10;this.addyAxisLabel();let e=C["c"](this.yScale).ticks(t).tickFormat((e,s)=>{if(s%3==0||s==t-1){let t=W(e,this.y_max_exponent);return""+t[0]}});var s=this.svg.append("g").attr("id","yAxis").attr("class","axis").attr("transform","translate("+4*this.padding.left+", 0)").call(e);s.selectAll("path").style("fill","none").style("stroke","black").style("stroke-width","1px"),s.selectAll("line").style("fill","none").style("stroke","#000").style("stroke-width","1px").style("opacity",.5),s.selectAll("text").style("font-size","14px").style("font-family","sans-serif").style("font-weight","lighter")},trendline(){let t=this;var e=C["j"]().x((function(e,s){return t.xScale(t.xArray[s])+3*t.padding.left})).y((function(e,s){return t.yScale(t.yArray[s])}));this.svg.append("g").attr("class","trend-line").append("path").datum(this.regressionY).attr("d",e).style("stroke","black").style("stroke-width","1px").style("opacity",.5)},calculateQDC(t,e){let s=this.$store.callsites[e][t][this.$store.selectedMetric]["q"];0==s[3]&&0==s[1]?this.undesirability[t]=1:this.undesirability[t]=(s[3]-s[1])/(s[3]+s[1])*100,this.maxUndesirability<this.undesirability[t]&&(this.maxVarianceCallsite=z(t,10)),this.maxUndesirability=Math.max(this.undesirability[t],this.maxUndesirability).toFixed(3);let i=this.undesirability[t]/this.maxUndesirability;return i},ensembleDots(){let t=this;for(let e=0;e<this.xArray.length;e+=1){let s=this.xArray[e]["callsite"],i=(this.xArray[e]["run"],1);this.svg.append("circle").attrs({class:"ensemble-dot",r:7.5,opacity:i,cx:()=>this.xScale(this.xArray[e].val)+3*this.padding.left,cy:()=>this.yScale(this.yArray[e].val)}).style("stroke","#202020").style("stroke-width",.5).style("fill",this.$store.distributionColor.ensemble).on("mouseover",()=>{let a={callsite:s,QCD:i,value:t.xArray[e].val,run:t.xArray[e].run};t.$refs.ToolTip.render(a)}).on("mouseout",()=>{t.$refs.ToolTip.clear()})}},targetDots(){let t=this;for(let e=0;e<this.xtargetArray.length;e++){let s=this.xtargetArray[e]["callsite"],i=this.xArray[e]["run"],a=1;this.svg.append("circle").attrs({class:"target-dot",r:7.5,opacity:a,cx:()=>this.xScale(this.xtargetArray[e].val)+3*this.padding.left,cy:(e,s)=>this.yScale(t.ytargetArray[s].val)}).style("fill",this.$store.distributionColor.target).style("stroke",this.$store.runtimeColor.edgeStrokeColor).style("stroke-width",.5).on("mouseover",()=>{let r={callsite:s,QCD:a,value:t.xtargetArray[e].val,run:i};t.$refs.ToolTip.render(r)}).on("mouseout",()=>{t.$refs.ToolTip.clear()})}},correlationText(){let t=this,e=C["g"]("0.2f");this.svg.append("g").append("text").attr("class","text").text("corr-coef: "+e(this.corre_coef)).attr("x",(function(e){return t.boxWidth-t.width/3})).attr("y",(function(t){return 20}))},clear(){C["v"](".ensemble-dot").remove(),C["v"](".target-dot").remove(),C["v"](".axis").remove(),C["v"](".trend-line").remove(),C["v"](".scatterplot-axis-label").remove(),C["v"](".text").remove()}}},ea=ta,sa=Object(x["a"])(ea,ji,Yi,!1,null,null,null),ia=sa.exports,aa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("v-card",{attrs:{id:t.id}},[s("v-layout",{staticClass:"chip-container"},[s("v-chip",{staticClass:"chip",attrs:{chips:"",color:"teal",label:"",outlined:"",clearable:""}},[t._v(" "+t._s(t.message)+" ")])],1),s("svg",{attrs:{id:t.svgId}})],1)},ra=[],oa=s("705b"),la=s.n(oa);function na(){var t,e=[],s=75,i=!0,a=!1,r=!0,o="lasso",l={start:function(){},draw:function(){},end:function(){}};function n(n){var h,d,c,u,f=n.append("g").attr("class",o),m=f.append("path").attr("class","drawn"),p=f.append("path").attr("class","loop_close"),g=f.append("circle").attr("class","origin"),x=C["e"]().on("start",b).on("drag",y).on("end",v);function b(){u=[],h="",m.attr("d",null),p.attr("d",null),e.nodes().forEach((function(t){t.__lasso.possible=!1,t.__lasso.selected=!1,t.__lasso.hoverSelect=!1,t.__lasso.loopSelect=!1;var e=t.getBoundingClientRect();t.__lasso.lassoPoint=[Math.round(e.left+e.width/2),Math.round(e.top+e.height/2)]})),r&&e.on("mouseover.lasso",(function(){this.__lasso.hoverSelect=!0})),l.start()}function y(){var t,r;"touchmove"===C["f"].sourceEvent.type?(t=C["f"].sourceEvent.touches[0].clientX,r=C["f"].sourceEvent.touches[0].clientY):(t=C["f"].sourceEvent.clientX,r=C["f"].sourceEvent.clientY);var o=C["m"](this)[0],n=C["m"](this)[1];""===h?(h=h+"M "+o+" "+n,d=[t,r],c=[o,n],g.attr("cx",o).attr("cy",n).attr("r",7).attr("display",null)):h=h+" L "+o+" "+n,u.push([t,r]);var f=Math.sqrt(Math.pow(t-d[0],2)+Math.pow(r-d[1],2)),x="M "+o+" "+n+" L "+c[0]+" "+c[1];m.attr("d",h),p.attr("d",x),a=f<=s,a&&i?p.attr("display",null):p.attr("display","none"),e.nodes().forEach((function(t){t.__lasso.loopSelect=!(!a||!i)&&la()(u,t.__lasso.lassoPoint)<1,t.__lasso.possible=t.__lasso.hoverSelect||t.__lasso.loopSelect})),l.draw()}function v(){e.on("mouseover.lasso",null),e.nodes().forEach((function(t){t.__lasso.selected=t.__lasso.possible,t.__lasso.possible=!1})),m.attr("d",null),p.attr("d",null),g.attr("display","none"),l.end()}t.call(x)}return n.items=function(t){if(!arguments.length)return e;e=t;var s=e.nodes();return s.forEach((function(t){t.__lasso={possible:!1,selected:!1}})),n},n.className=function(t){return o=t,n},n.possibleItems=function(){return e.filter((function(){return this.__lasso.possible}))},n.selectedItems=function(){return e.filter((function(){return this.__lasso.selected}))},n.notPossibleItems=function(){return e.filter((function(){return!this.__lasso.possible}))},n.notSelectedItems=function(){return e.filter((function(){return!this.__lasso.selected}))},n.closePathDistance=function(t){return arguments.length?(s=t,n):s},n.closePathSelect=function(t){return arguments.length?(i=!0===t,n):i},n.isPathClosed=function(t){return arguments.length?(a=!0===t,n):a},n.hoverSelect=function(t){return arguments.length?(r=!0===t,n):r},n.on=function(t,e){if(!arguments.length)return l;if(1===arguments.length)return l[t];var s=["start","draw","end"];return s.indexOf(t)>-1&&(l[t]=e),n},n.targetArea=function(e){return arguments.length?(t=e,n):t},n}var ha={name:"ParameterProjection",props:[],data:()=>({id:"parameter-projection-view",svgId:"parameter-projection-view-svg",ts:null,config:null,vis:null,colorBy:null,zoomed:!1,xMin:0,xMax:0,yMin:0,yMax:0,message:"Parameter Projection",showMessage:!1,colorset:["#FF7F00","#16BECF","#984EA3","#8C564B","#E377C2","#7F7F7F","#BCBD21","#4daf4a","#D62728"]}),sockets:{parameter_projection(t){t=JSON.parse(t),console.log("Projections: ",t),this.visualize(t)}},mounted(){let t=this;E.$on("highlight_dataset",e=>{console.log("[Projection] Highlighting the dataset :",e),t.highlight(e)}),E.$on("update_number_of_clusters",e=>{t.clear(),m.POSTRequest("projection",{datasets:t.$store.selectedDatasets,targetDataset:t.$store.selectedTargetDataset,groupBy:"module",numOfClusters:t.$store.selectedNumOfClusters})})},methods:{async init(){let t=document.getElementById(this.id);this.width=t.clientWidth,this.tooltipHeight=110,this.height=.33*this.$store.viewHeight-this.tooltipHeight,this.padding={left:50,top:0,right:50,bottom:30},this.x=C["q"]().range([0,this.width]),this.y=C["q"]().range([this.height,0]);let e=await m.POSTRequest("projection",{datasets:this.$store.selectedDatasets,targetDataset:this.$store.selectedTargetDataset,groupBy:"module",numOfClusters:this.$store.selectedNumOfClusters});e=JSON.parse(e),console.debug("[/projection] data: ",e),this.visualize(e)},axis(){this.xAxis=C["b"](this.x).tickFormat((t,e)=>""),this.yAxis=C["c"](this.y).tickFormat((t,e)=>""),this.yDom=[0,0],this.xAxisSVG=this.svg.append("g").attrs({transform:`translate(${this.padding.left}, ${this.height-this.padding.bottom})`,class:"x-axis",color:"transparent"}).call(this.xAxis),this.yAxisSVG=this.svg.append("g").attrs({transform:`translate(${this.padding.left}, ${this.padding.top})`,class:"y-axis",color:"transparent"}).call(this.yAxis),this.lineLength=75,this.svg.append("svg:defs").append("svg:marker").attr("id","triangle").attr("refX",15).attr("refY",-1.5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 -5 10 10").style("stroke","black"),this.svg.append("line").attr("x1",this.padding.bottom).attr("y1",this.height-this.padding.bottom/2).attr("x2",this.lineLength).attr("y2",this.height-this.padding.bottom/2).attr("stroke-width",1.5).attr("stroke","black").style("opacity",.5),this.svg.append("line").attr("x1",this.padding.bottom).attr("y1",this.height-this.padding.bottom/2).attr("x2",this.padding.bottom).attr("y2",this.height-.75*this.lineLength).attr("stroke-width",1.5).attr("stroke","black").style("opacity",.5),this.svg.append("text").attrs({class:"projection-axis-label",x:this.lineLength,y:this.height}).style("text-anchor","end").style("font-size","10px").style("fill","none").style("font-size","10px").style("stroke","black").style("stroke-width","1px").style("opacity",.5).text("PC1"),this.svg.append("text").attrs({class:"projection-axis-label",x:-this.height+.75*this.lineLength,y:.75*this.padding.bottom,transform:"rotate(-90)"}).style("text-anchor","end").style("fill","none").style("font-size","10px").style("stroke","black").style("stroke-width","1px").style("opacity",.5).text("PC2")},preprocess(t){let e=[];this.numberOfPoints=Object.entries(t["x"]).length;for(let s=0;s<this.numberOfPoints;s+=1){let i=t["dataset"][s];e[s]=[],e[s].push(t["x"][s]),e[s].push(t["y"][s]),e[s].push(t["dataset"][s]),e[s].push(s),e[s].push(t["label"][s]),e[s].push(this.$store.maxIncTime[i]),e[s].push(this.$store.maxExcTime[i]);let a=t["x"][s],r=t["y"][s];a<this.xMin&&(this.xMin=a),a>this.xMax&&(this.xMax=a),r<this.yMin&&(this.yMin=r),r>this.yMax&&(this.yMax=r)}return e},setup(){this.svg=C["u"]("#"+this.svgId).attrs({width:this.width,height:this.height,transform:"translate(0, 0)"}).style("stroke-width",1).style("stroke",this.$store.ensemble).style("background-color",this.$store.ensemble),this.t=this.svg.transition().duration(750),this.axis()},addTooltipTextBlock(){this.tooltip=C["u"]("#"+this.id).append("div").attrs({class:"tooltip",id:"parameter-projection-tooltip"}).style("opacity",1)},drawInnerCircle(){let t=this;this.circles=this.svg.selectAll("circle").data(this.$store.projection).enter().append("circle").attrs({class:t=>"dot",id:t=>"dot-"+this.$store.datasetMap[t[2]],r:t=>6,fill:e=>{let s="";return s=(e[2]==t.$store.selectedTargetDataset&&t.$store.showTarget,this.colorset[e[4]]),s},cx:(e,s)=>t.x(e[0]),cy:e=>t.y(e[1])})},drawOuterDisc(){this.outerCircles=this.svg.selectAll(".outer-circle").data(this.$store.projection).enter().append("circle").attrs({class:t=>"outer-circle",id:t=>"outer-circle-"+self.$store.datasetMap[t[2]],r:8,"stroke-width":3,stroke:t=>t[2]==self.$store.selectedTargetDataset&&self.$store.showTarget?this.colorset[t[4]]:C["o"](self.$store.DistributionColor.ensemble),"fill-opacity":0,cx:(t,e)=>self.x(t[0]),cy:t=>self.y(t[1])}).on("mouseover",t=>{this.mouseover(t)}).on("click",t=>{}).on("dblclick",t=>{})},addLassoFeature(){this.lasso=na().className("lasso"+this.id).closePathSelect(!0).closePathDistance(100).items(this.circles).targetArea(this.svg).on("start",this.lassoStart).on("draw",this.lassoDraw).on("end",this.lassoEnd),this.svg.call(this.lasso)},visualize(t){this.setup(),this.$store.projection=this.preprocess(t),this.x.domain([2*this.xMin,2*this.xMax]),this.y.domain([2*this.yMin,2*this.yMax]),this.xAxisSVG.call(this.xAxis),this.yAxisSVG.call(this.yAxis),this.drawInnerCircle(),this.addTooltipTextBlock(),this.addLassoFeature(),this.highlight(this.$store.selectedTargetDataset),this.showDetails(this.$store.selectedTargetDataset)},showDetails(t){this.tooltip.html("Run: "+t+"<br/>[PC1] Inc. time (max): "+G(this.$store.maxIncTime[t])+"<br/>[PC2] Exc. time (max): "+G(this.$store.maxExcTime[t]))},mouseover(t){let e=t[2];C["v"](".dot").style("opacity",.5),this.tooltip.transition().duration(200).style("opacity",1).style("left",10),this.showDetails(e)},click(t){let e=this;this.selectedRun=t[2],C["v"](".dot").attr("stroke",e.$store.distributionColor.ensemble).attr("stroke-width",3),C["u"]("#dot-"+e.$store.datasetMap[t[2]]).attr("stroke",e.$store.distributionColor.compare).attr("stroke-width",3),C["u"]("#outer-dot"+e.$store.datasetMap[e.$store.selectedTargetDataset]).attr("stroke",e.$store.distributionColor.target).attr("stroke-width",3),this.compareDataset=t[2],this.$store.selectedCompareDataset=this.compareDataset,this.$emit("compare"),this.$socket.emit("compare",{targetDataset:e.$store.selectedTargetDataset,compareDataset:this.compareDataset,selectedMetric:this.$store.selectedMetric})},dblclick(t){let e=t[2];this.$socket.emit("dist_group_highlight",{datasets:[e],groupBy:this.$store.selectedGroupBy}),this.$socket.emit("dist_auxiliary",{datasets:[e],sortBy:this.$store.auxiliarySortBy,module:"all"}),this.$store.selectedTargetDataset=e,E.$emit("highlight-datasets",this.$store.selectedTargetDataset)},lassoStart(){C["v"](".dot").attrs({opacity:1}),this.lasso.items().attr("r",t=>4.5).classed("not_possible",!0).classed("selected",!1)},lassoDraw(){this.lasso.possibleItems().classed("not_possible",!1).classed("possible",!0),this.lasso.notPossibleItems().classed("not_possible",!0).classed("possible",!1)},lassoEnd(){C["v"](".dot").attrs({opacity:.5}),this.selectedDatasets=[],this.lasso.items().classed("not_possible",!1).classed("possible",!1),this.lasso.selectedItems().classed("selected",!0).attr("r",t=>4.5).attr("id",t=>{this.selectedDatasets.push(t[2])}).attr("opacity",1),this.lasso.notSelectedItems().attr("r",4.5).attr("opacity",.3),this.$store.selectedDatasets=this.selectedDatasets,E.$emit("lasso-selection",this.$store.selectedDatasets)},zoom(){this.zoomed=!0;let t=this;this.svg.selectAll(".circle"+this.id).transition(this.t).attr("cx",(function(e){return t.x(e["PC0"][0])})).attr("cy",(function(e){return t.y(e["PC1"][0])})),this.svg.selectAll(".selection").attrs({x:0,y:0,width:0,height:0})},unzoom(){this.zoomed=!1,this.x.domain([2*this.xMin,2*this.xMax]),this.y.domain([2*this.yMin,2*this.yMax]);let t=this;this.svg.selectAll(".circle"+this.id).transition(this.t).attr("cx",(function(e){return t.x(e["PC0"][0])})).attr("cy",(function(e){return t.y(e["PC1"][0])}))},brushended(){let t=350,e=C["f"].selection;if(e){let t=e.map(this.x.invert),s=e.map(this.y.invert);if(this.selectedIds=this.findIdsInRegion(t[0],t[1],s[0],s[1]),this.x.domain([e[0][0],e[1][0]].map(this.x.invert,this.x)),this.y.domain([e[1][1],e[0][1]].map(this.y.invert,this.y)),!C["f"].sourceEvent)return;C["u"](".brush").call(this.brush.move,null)}else{if(!this.idleTimeout)return this.idleTimeout=setTimeout(this.idled,t);this.x.domain([2*this.xMin,2*this.xMax]),this.y.domain([2*this.yMin,2*this.yMax])}this.zoom(),this.select()},idled(){this.idleTimeout=null},highlight(t){let e=this.$store.datasetMap[t];this.circles=this.svg.selectAll("#dot-"+e).attrs({opacity:1,stroke:this.$store.distributionColor.target,"stroke-width":3}),this.circles=this.svg.selectAll("#dot-"+e).attrs({opacity:1,stroke:this.$store.distributionColor.target,"stroke-width":4.5})},clear(){C["v"]("#parameter-projection-tooltip").remove(),C["v"](".outer-circle").remove(),this.svg.selectAll(".lasso").remove(),this.svg.selectAll(".projection-axis-label").remove()}}},da=ha,ca=Object(x["a"])(da,aa,ra,!1,null,null,null),ua=ca.exports,fa={name:"EnsembleCallFlow",components:{Splitpanes:D.a,SuperGraph:ve,CCT:ke,EnsembleScatterplot:ia,EnsembleHistogram:Ii,ModuleHierarchy:Vi,ParameterProjection:ua,CallsiteCorrespondence:vi},watch:{showTarget:function(t){E.$emit("show-target-auxiliary")}},data:()=>({appName:"CallFlow",server:"localhost:5000",config:{headers:{"Access-Control-Allow-Origin":"*"}},left:!1,formats:["CCT","SuperGraph"],selectedFormat:"SuperGraph",datasets:[],selectedTargetDataset:"",selectedDataset2:"",groupBy:["Name","Module","File"],selectedGroupBy:"Module",filterBy:["Inclusive","Exclusive"],filterRange:[0,100],selectedFilterBy:"Inclusive",selectedIncTime:0,filterPercRange:[0,100],selectedFilterPerc:5,metrics:["Exclusive","Inclusive"],selectedMetric:"Inclusive",runtimeColorMap:[],distributionColorMap:[],selectedRuntimeColorMap:"Blues",selectedDistributionColorMap:"Reds",colorPoints:[3,4,5,6,7,8,9],selectedColorPoint:9,selectedColorMin:null,selectedColorMax:null,selectedColorMinText:"",selectedColorMaxText:"",groupModes:["include callbacks","exclude callbacks"],selectedGroupMode:"include callbacks",scatterMode:["mean","all"],selectedScatterMode:"all",selectedFunctionsInCCT:70,selectedDiffNodeAlignment:"Top",diffNodeAlignment:["Middle","Top"],isCallgraphInitialized:!1,isCCTInitialized:!1,datas:["Dataframe","Graph"],selectedData:"Dataframe",firstRender:!0,summaryChip:"Ensemble Super Graph",auxiliarySortBy:"time (inc)",ranks:[],initLoad:!0,comparisonMode:!1,selectedCompareDataset:null,compareModes:["MEAN_DIFF","RANK_DIFF"],selectedCompareMode:"MEAN_DIFF",selectedOutlierBand:4,modes:["Ensemble","Single"],selectedMode:"Ensemble",exhibitModes:["Presentation","Default"],selectedExhibitMode:"Default",presentationPage:0,presentationOrder:["run_information","ensemble_supergraph","ensemble_gradients","ensemble_mini_histogram","module_hierarchy","ensemble_auxiliary","ensemble_similarity","ensemble_projection"],parameter_analysis:!0,selectedRunBinCount:20,selectedMPIBinCount:20,selectedHierarchyMode:"Uniform",hierarchyModes:["Uniform","Exclusive"],selectedRuntimeSortBy:"Inclusive",sortByModes:["Inclusive","Exclusive","Standard Deviation"],scales:["Log","Linear"],selectedScale:"Linear",props:["name","rank","dataset","all_ranks"],selectedProp:"rank",dimensions:["max_inclusive_time","max_exclusive_time","rank_count"],selectedPC1:"max_inclusive_time",selectedPC2:"max_exclusive_time",selectedIQRFactor:.15,selectedNumOfClusters:3,targetColorMap:{Green:"#4EAF4A",Blue:"#4681B4",Brown:"#AF9B90",Red:"#A90400"},targetColors:["Green","Blue","Brown"],selectedTargetColor:"Green",showTarget:!0,targetInfo:"Target Guides",metricTimeMap:{}}),mounted(){this.fetchData(),E.$on("lasso_selection",()=>{this.$store.resetTargetDataset=!0,this.clearLocal(),this.setTargetDataset(),this.requestEnsembleData()})},methods:{async fetchData(){void 0===this.$store.selectedDatasets&&this.$router.push("/"),this.$store.auxiliarySortBy=this.auxiliarySortBy,this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.selectedRunBinCount=this.selectedRunBinCount;const t=await m.POSTRequest("supergraph_data",{datasets:this.$store.selectedDatasets,sortBy:this.$store.auxiliarySortBy,MPIBinCount:this.$store.selectedMPIBinCount,RunBinCount:this.$store.selectedRunBinCount,re_process:1});console.debug("[/supergraph_data]",t),this.dataReady=!0,this.setupStore(t),this.init()},init(){console.assert(this.selectedMode,"Single"),console.log("Mode : ",this.selectedMode),console.log("Number of runs :",this.$store.numOfRuns),console.log("Datasets : ",this.$store.selectedDatasets),console.log("Format = ",this.selectedFormat),this.setGlobalVariables(),this.setTargetDataset(),this.setupColors(),this.setViewDimensions(),this.setComponentMap(),"SuperGraph"==this.selectedFormat?(this.setSelectedModule(),this.initComponents(this.currentEnsembleSuperGraphComponents)):"CCT"==this.selectedFormat&&this.initComponents(this.currentEnsembleCCTComponents),E.$emit("ensemble-refresh-boxplot",{})},setupStore(t){this.$store.modules=t["module"],this.$store.callsites=t["callsite"],this.$store.gradients=t["gradients"],this.$store.moduleCallsiteMap=t["moduleCallsiteMap"],this.$store.callsiteModuleMap=t["callsiteModuleMap"],this.datasets=this.$store.selectedDatasets,this.numOfRuns>=2?(this.modes=["Single","Ensemble"],this.selectedMode="Ensemble"):1==this.numOfRuns&&(this.enableDist=!1,this.modes=["Single"],this.selectedMode="Single")},setGlobalVariables(){this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.selectedRunBinCount=this.selectedRunBinCount,this.$store.auxiliarySortBy=this.auxiliarySortBy,this.$store.reprocess=0,this.$store.comparisonMode=this.comparisonMode,this.$store.fontSize=14,this.$store.transitionDuration=1e3,this.$store.showTarget=this.showTarget,this.$store.encoding="MEAN_GRADIENTS",this.$store.selectedScatterMode="mean",this.$store.nodeInfo={},this.$store.selectedMode=this.selectedMode,this.$store.selectedFunctionsInCCT=this.selectedFunctionsInCCT,this.$store.selectedHierarchyMode=this.selectedHierarchyMode,this.$store.selectedFormat=this.selectedFormat,this.$store.selectedProp=this.selectedProp,this.$store.selectedScale=this.selectedScale,this.$store.selectedCompareMode=this.selectedCompareMode,this.$store.selectedIQRFactor=this.selectedIQRFactor,this.$store.selectedRuntimeSortBy=this.selectedRuntimeSortBy,this.$store.selectedNumOfClusters=this.selectedNumOfClusters,this.$store.selectedEdgeAlignment="Top",this.$store.datasetMap={};for(let t=0;t<this.$store.selectedDatasets.length;t+=1)this.$store.datasetMap[this.$store.selectedDatasets[t]]="run-"+t;this.$store.contextMenu=this.contextMenu,this.$store.selectedSuperNodePositionMode="Minimal edge crossing"},setTargetDataset(){this.firstRender&&(this.$store.resetTargetDataset=!0),this.$store.selectedMetric=this.selectedMetric,this.datasets=this.sortDatasetsByAttr(this.$store.selectedDatasets,"Inclusive");let t="",e=0,s={};"Inclusive"==this.$store.selectedMetric?s=this.$store.maxIncTime:"Exclusive"==this.$store.selectedMetric&&(s=this.$store.maxExcTime);for(let i of this.$store.selectedDatasets)e<s[i]&&(e=s[i],t=i);this.firstRender||this.$store.resetTargetDataset?(this.$store.selectedTargetDataset=t,this.selectedTargetDataset=t,this.firstRender=!1,this.$store.resetTargetDataset=!1):this.$store.selectedTargetDataset=this.selectedTargetDataset,this.selectedIncTime=(this.selectedFilterPerc*this.$store.maxIncTime[this.selectedTargetDataset]*1e-6/100).toFixed(3),console.log("Maximum among all runtimes: ",this.selectedTargetDataset)},setViewDimensions(){this.$store.viewWidth=window.innerWidth;let t=0,e=0;t=null==document.getElementById("toolbar")?0:document.getElementById("toolbar").clientHeight,e=null==document.getElementById("footer")?0:document.getElementById("footer").clientHeight,this.$store.viewHeight=window.innerHeight-t-e},setComponentMap(){this.currentEnsembleCCTComponents=[this.$refs.CCT],this.currentEnsembleSuperGraphComponents=[this.$refs.SuperGraph,this.$refs.EnsembleHistogram,this.$refs.EnsembleScatterplot,this.$refs.CallsiteCorrespondence,this.$refs.ParameterProjection,this.$refs.ModuleHierarchy]},setRuntimeColorScale(){let t=null,e=null;"Inclusive"==this.selectedMetric?(t=parseFloat(this.$store.minIncTime["ensemble"]),e=parseFloat(this.$store.maxIncTime["ensemble"])):"Exclusive"==this.selectedMetric?(t=parseFloat(this.$store.minExcTime["ensemble"]),e=parseFloat(this.$store.maxExcTime["ensemble"])):"Imbalance"==this.selectedMetric&&(t=0,e=1),this.selectedColorMinText=q(parseFloat(t)),this.selectedColorMaxText=q(parseFloat(e)),this.$store.selectedColorMin=this.colorMin,this.$store.selectedColorMax=this.colorMax,this.$store.runtimeColor.setColorScale(this.$store.selectedMetric,t,e,this.selectedRuntimeColorMap,this.selectedColorPoint)},setDistributionColorScale(){let t=0,e=0;for(let s in this.$store.modules["ensemble"]){let i=this.$store.modules["ensemble"][s];t=Math.min(t,i[this.$store.selectedMetric]["gradients"]["hist"]["y_min"]),e=Math.max(e,i[this.$store.selectedMetric]["gradients"]["hist"]["y_max"])}this.$store.distributionColor.setColorScale("MeanGradients",t,e,this.selectedDistributionColorMap,this.selectedColorPoint)},setupColors(){this.$store.runtimeColor=new w,this.runtimeColorMap=this.$store.runtimeColor.getAllColors(),this.setRuntimeColorScale(),this.$store.distributionColor=new w,this.distributionColorMap=this.$store.distributionColor.getAllColors(),this.setDistributionColorScale(),this.selectedTargetColor="Green",this.$store.distributionColor.target=this.targetColorMap[this.selectedTargetColor],this.$store.distributionColor.ensemble="#C0C0C0",this.$store.distributionColor.compare="#043060",this.$store.diffColor=new w,this.$store.selectedRuntimeColorMap=this.selectedRuntimeColorMap,this.$store.selectedDistributionColorMap=this.selectedDistributionColorMap,this.$store.selectedColorPoint=this.selectedColorPoint,this.selectedTargetColor=this.targetColorMap[this.selectedTargetColorText],this.targetColors=Object.keys(this.targetColorMap),this.$store.runtimeColor.intermediate="#d9d9d9",this.$store.runtimeColor.highlight="#C0C0C0",this.$store.runtimeColor.textColor="#3a3a3a",this.$store.runtimeColor.edgeStrokeColor="#888888"},sortModulesByMetric(t){let e=Object.keys(this.$store.modules["ensemble"]),s={};for(let a of e)s[a]=this.$store.modules["ensemble"][a][this.$store.selectedMetric]["mean_time"];let i=Object.keys(s).map((function(t){return[t,s[t]]}));return i.sort((function(t,e){return e[1]-t[1]})),i},setSelectedModule(){let t=this.sortModulesByMetric();this.selectedModule=t[0][0],this.$store.selectedModule=this.selectedModule},clearLocal(){"CCT"==this.selectedFormat?this.clearComponents(this.currentEnsembleCCTComponents):"SuperGraph"==this.selectedFormat&&this.clearComponents(this.currentEnsembleSuperGraphComponents)},clear(){"CCT"==this.selectedFormat?this.clearComponents(this.currentEnsembleSuperGraphComponents):"SuperGraph"==this.selectedFormat&&this.clearComponents(this.currentEnsembleCCTComponents)},initComponents(t){for(let e=0;e<t.length;e++)t[e].init()},clearComponents(t){for(let e=0;e<t.length;e++)t[e].clear()},formatRuntimeWithoutUnits(t){let e=C["g"](".2"),s=e(t);return s},sortDatasetsByAttr(t,e){if(1==t.length)return this.metricTimeMap[t[0]]=this.$store.maxIncTime[t[0]],t;let s=t.sort((t,s)=>{let i=0,a=0;return"Inclusive"==e?(i=this.$store.maxIncTime[t],a=this.$store.maxIncTime[s],this.metricTimeMap=this.$store.maxIncTime):"Exclusive"==e&&(i=this.$store.maxExcTime[t],a=this.$store.maxExcTime[s],this.metricTimeMap=this.$store.maxExcTime),parseFloat(i)-parseFloat(a)});return s},updateColors(){this.clearLocal(),this.setupColors(),this.init()},updateFormat(){this.clearLocal(),this.reset(),this.init()},updateMode(){this.clear(),this.init()},updateMetric(){this.$store.selectedMetric=this.selectedMetric,this.clearLocal(),this.init()},updateColor(){this.clear(),this.init()},updateColorPoint(){this.clearLocal(),this.init()},updateFunctionsInCCT(){m.POSTRequest("cct",{dataset:this.$store.selectedTargetDataset,functionInCCT:this.selectedFunctionsInCCT})},updateDiffNodeAlignment(){console.log("Alignment mode: ",this.selectedDiffNodeAlignment),this.$store.selectedDiffNodeAlignment=this.selectedDiffNodeAlignment,E.$emit("update-diff-node-alignment")},updateAuxiliarySortBy(){this.$store.auxiliarySortBy=this.auxiliarySortBy,E.$emit("update-auxiliary-sort-by")},async updateCompareDataset(){this.summaryChip="Diff SuperGraph",this.$store.selectedCompareDataset=this.selectedCompareDataset,this.$store.comparisonMode=!0,this.$store.encoding=this.selectedCompareMode;const t=await m.POSTRequest("compare",{targetDataset:this.$store.selectedTargetDataset,compareDataset:this.$store.selectedCompareDataset,selectedMetric:this.$store.selectedMetric});this.$refs.SuperGraph.activateCompareMode(t)},updateProp(){this.$store.selectedProp=this.selectedProp,this.clearLocal(),this.init()},updateScale(){this.$store.selectedScale=this.selectedScale,this.clearLocal(),this.init()},updateHierarchyMode(){this.$store.selectedHierarchyMode=this.selectedHierarchyMode,this.clearLocal(),this.init()},updateIQRFactor(){this.$store.selectedIQRFactor=this.selectedIQRFactor,this.clearLocal(),this.init()},updateRuntimeSortBy(){this.$store.selectedRuntimeSortBy=this.selectedRuntimeSortBy,E.$emit("callsite-information-sort")},updateNumOfClusters(){this.$store.selectedNumOfClusters=this.selectedNumOfClusters,E.$emit("update-number-of-clusters")},updateTargetColor(){this.$store.showTarget=this.showTarget,this.clear(),this.init(),E.$emit("ensemble-auxiliary",{})},updateRunBinCount(){this.$store.selectedRunBinCount=this.selectedRunBinCount,this.requestEnsembleData(),this.clearLocal(),this.init()},updateMPIBinCount(){this.$store.selectedMPIBinCount=this.selectedMPIBinCount,this.$store.reprocess=1,this.requestEnsembleData(),this.clearLocal(),this.init()}}},ma=fa,pa=Object(x["a"])(ma,Rs,Fs,!1,null,null,null),ga=pa.exports;i["default"].use(a);const xa=new a["Store"],ba=new r["a"]({routes:[{path:"/single",name:"SingleCallFlow",component:Hs,props:!0},{path:"/ensemble",name:"EnsembleCallFlow",component:ga,props:!0}]});i["default"].config.productionTip=!1,i["default"].use(n["a"]),i["default"].use(r["a"]),i["default"].use(l.a),i["default"].use(d.a),new i["default"]({store:xa,render:t=>t(y),el:"#app",router:ba,components:{App:y},template:"<App/>"}),i["default"].config.devtools=!0;e["default"]=ba},7456:function(t,e,s){},"7dad":function(t,e,s){},8985:function(t,e,s){"use strict";var i=s("ded0"),a=s.n(i);a.a},9993:function(t,e,s){"use strict";var i=s("7dad"),a=s.n(i);a.a},a700:function(t,e,s){"use strict";var i=s("0007"),a=s.n(i);a.a},acf7:function(t,e,s){"use strict";var i=s("7456"),a=s.n(i);a.a},ceb8:function(t,e,s){},ded0:function(t,e,s){}});
//# sourceMappingURL=app.a978f178.js.map