http://git-wip-us.apache.org/repos/asf/ambari/blob/672eee34/contrib/views/hive/src/main/resources/ui/hive-web/vendor/dagre.min.js
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive/src/main/resources/ui/hive-web/vendor/dagre.min.js 
b/contrib/views/hive/src/main/resources/ui/hive-web/vendor/dagre.min.js
new file mode 100644
index 0000000..10a0471
--- /dev/null
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/vendor/dagre.min.js
@@ -0,0 +1,27 @@
+/**
+ * @license
+ * Copyright (c) 2012-2014 Chris Pettitt
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to 
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof 
require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var 
f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var 
l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return 
s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof 
require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return 
s})({1:[function(require,module,exports){(function(global){global.dagre=require("./index");global.dagre.graphlib=require("graphlib")}).call(this,typeof
 global!=="undefined"?global:typeof self!=="undefined"?self:typeof 
window!=="undefined"?window:{})},{"./index":2,graphlib:29}],2:[function(require,module,exports){module.exports={layout:require("./lib/layout"),debug:require("./lib/debug"),util:{time:require("./lib/util").time,notime:require("./lib/util").notime},version:require("./lib/version")}},{"./lib/debug":6,"./lib/layout":8,"./lib/util":27,"./lib/v
 ersion":28}],3:[function(require,module,exports){"use strict";var 
_=require("lodash"),greedyFAS=require("./greedy-fas");module.exports={run:run,undo:undo};function
 run(g){var 
fas=g.graph().acyclicer==="greedy"?greedyFAS(g,weightFn(g)):dfsFAS(g);_.each(fas,function(e){var
 
label=g.edge(e);g.removeEdge(e);label.forwardName=e.name;label.reversed=true;g.setEdge(e.w,e.v,label,_.uniqueId("rev"))});function
 weightFn(g){return function(e){return g.edge(e).weight}}}function 
dfsFAS(g){var fas=[],stack={},visited={};function 
dfs(v){if(_.has(visited,v)){return}visited[v]=true;stack[v]=true;_.each(g.outEdges(v),function(e){if(_.has(stack,e.w)){fas.push(e)}else{dfs(e.w)}});delete
 stack[v]}_.each(g.nodes(),dfs);return fas}function 
undo(g){_.each(g.edges(),function(e){var 
label=g.edge(e);if(label.reversed){g.removeEdge(e);var 
forwardName=label.forwardName;delete label.reversed;delete 
label.forwardName;g.setEdge(e.w,e.v,label,forwardName)}})}},{"./greedy-fas":7,lodash:48}],4:[function(require,module,
 exports){var 
_=require("lodash"),util=require("./util");module.exports=addBorderSegments;function
 addBorderSegments(g){function dfs(v){var 
children=g.children(v),node=g.node(v);if(children.length){_.each(children,dfs)}if(_.has(node,"minRank")){node.borderLeft=[];node.borderRight=[];for(var
 
rank=node.minRank,maxRank=node.maxRank+1;rank<maxRank;++rank){addBorderNode(g,"borderLeft","_bl",v,node,rank);addBorderNode(g,"borderRight","_br",v,node,rank)}}}_.each(g.children(),dfs)}function
 addBorderNode(g,prop,prefix,sg,sgNode,rank){var 
label={width:0,height:0,rank:rank},prev=sgNode[prop][rank-1],curr=util.addDummyNode(g,"border",label,prefix);sgNode[prop][rank]=curr;g.setParent(curr,sg);if(prev){g.setEdge(prev,curr,{weight:1})}}},{"./util":27,lodash:48}],5:[function(require,module,exports){module.exports=List;function
 List(){var 
sentinel={};sentinel._next=sentinel._prev=sentinel;this._sentinel=sentinel}List.prototype.dequeue=function(){var
 sentinel=this._sentinel,entry=sentinel._prev;if(ent
 ry!==sentinel){unlink(entry);return 
entry}};List.prototype.enqueue=function(entry){var 
sentinel=this._sentinel;if(entry._prev&&entry._next){unlink(entry)}entry._next=sentinel._next;sentinel._next._prev=entry;sentinel._next=entry;entry._prev=sentinel};List.prototype.toString=function(){var
 
strs=[],sentinel=this._sentinel,curr=sentinel._prev;while(curr!==sentinel){strs.push(JSON.stringify(curr,filterOutLinks));curr=curr._prev}return"["+strs.join(",
 ")+"]"};function 
unlink(entry){entry._prev._next=entry._next;entry._next._prev=entry._prev;delete
 entry._next;delete entry._prev}function 
filterOutLinks(k,v){if(k!=="_next"&&k!=="_prev"){return 
v}}},{}],6:[function(require,module,exports){var 
_=require("lodash"),util=require("./util"),Graph=require("graphlib").Graph;module.exports={debugOrdering:debugOrdering};function
 debugOrdering(g){var layerMatrix=util.buildLayerMatrix(g);var h=new 
Graph({compound:true,multigraph:true}).setGraph({});_.each(g.nodes(),function(v){h.setNode(v,{label:v});h.
 
setParent(v,"layer"+g.node(v).rank)});_.each(g.edges(),function(e){h.setEdge(e.v,e.w,{},e.name)});_.each(layerMatrix,function(layer,i){var
 
layerV="layer"+i;h.setNode(layerV,{rank:"same"});_.reduce(layer,function(u,v){h.setEdge(u,v,{style:"invis"});return
 v})});return 
h}},{"./util":27,graphlib:29,lodash:48}],7:[function(require,module,exports){var
 
_=require("lodash"),Graph=require("graphlib").Graph,List=require("./data/list");module.exports=greedyFAS;var
 DEFAULT_WEIGHT_FN=_.constant(1);function 
greedyFAS(g,weightFn){if(g.nodeCount()<=1){return[]}var 
state=buildState(g,weightFn||DEFAULT_WEIGHT_FN);var 
results=doGreedyFAS(state.graph,state.buckets,state.zeroIdx);return 
_.flatten(_.map(results,function(e){return g.outEdges(e.v,e.w)}),true)}function 
doGreedyFAS(g,buckets,zeroIdx){var 
results=[],sources=buckets[buckets.length-1],sinks=buckets[0];var 
entry;while(g.nodeCount()){while(entry=sinks.dequeue()){removeNode(g,buckets,zeroIdx,entry)}while(entry=sources.dequeue()){removeNode(g,bucke
 ts,zeroIdx,entry)}if(g.nodeCount()){for(var 
i=buckets.length-2;i>0;--i){entry=buckets[i].dequeue();if(entry){results=results.concat(removeNode(g,buckets,zeroIdx,entry,true));break}}}}return
 results}function removeNode(g,buckets,zeroIdx,entry,collectPredecessors){var 
results=collectPredecessors?[]:undefined;_.each(g.inEdges(entry.v),function(edge){var
 
weight=g.edge(edge),uEntry=g.node(edge.v);if(collectPredecessors){results.push({v:edge.v,w:edge.w})}uEntry.out-=weight;assignBucket(buckets,zeroIdx,uEntry)});_.each(g.outEdges(entry.v),function(edge){var
 
weight=g.edge(edge),w=edge.w,wEntry=g.node(w);wEntry.in-=weight;assignBucket(buckets,zeroIdx,wEntry)});g.removeNode(entry.v);return
 results}function buildState(g,weightFn){var fasGraph=new 
Graph,maxIn=0,maxOut=0;_.each(g.nodes(),function(v){fasGraph.setNode(v,{v:v,"in":0,out:0})});_.each(g.edges(),function(e){var
 
prevWeight=fasGraph.edge(e.v,e.w)||0,weight=weightFn(e),edgeWeight=prevWeight+weight;fasGraph.setEdge(e.v,e.w,edgeWeight);max
 
Out=Math.max(maxOut,fasGraph.node(e.v).out+=weight);maxIn=Math.max(maxIn,fasGraph.node(e.w).in+=weight)});var
 buckets=_.range(maxOut+maxIn+3).map(function(){return new List});var 
zeroIdx=maxIn+1;_.each(fasGraph.nodes(),function(v){assignBucket(buckets,zeroIdx,fasGraph.node(v))});return{graph:fasGraph,buckets:buckets,zeroIdx:zeroIdx}}function
 
assignBucket(buckets,zeroIdx,entry){if(!entry.out){buckets[0].enqueue(entry)}else
 
if(!entry.in){buckets[buckets.length-1].enqueue(entry)}else{buckets[entry.out-entry.in+zeroIdx].enqueue(entry)}}},{"./data/list":5,graphlib:29,lodash:48}],8:[function(require,module,exports){"use
 strict";var 
_=require("lodash"),acyclic=require("./acyclic"),normalize=require("./normalize"),rank=require("./rank"),normalizeRanks=require("./util").normalizeRanks,parentDummyChains=require("./parent-dummy-chains"),removeEmptyRanks=require("./util").removeEmptyRanks,nestingGraph=require("./nesting-graph"),addBorderSegments=require("./add-border-segments"),order=require(".
 
/order"),position=require("./position"),util=require("./util"),Graph=require("graphlib").Graph;module.exports=layout;function
 layout(g,opts){var 
time=opts&&opts.debugTiming?util.time:util.notime;time("layout",function(){var 
layoutGraph=time("  buildLayoutGraph",function(){return 
buildLayoutGraph(g)});time("  
runLayout",function(){runLayout(layoutGraph,time)});time("  
updateInputGraph",function(){updateInputGraph(g,layoutGraph)})})}function 
runLayout(g,time){time("    
makeSpaceForEdgeLabels",function(){makeSpaceForEdgeLabels(g)});time("    
removeSelfEdges",function(){removeSelfEdges(g)});time("    
acyclic",function(){acyclic.run(g)});time("    
nestingGraph.run",function(){nestingGraph.run(g)});time("    
rank",function(){rank(util.asNonCompoundGraph(g))});time("    
injectEdgeLabelProxies",function(){injectEdgeLabelProxies(g)});time("    
removeEmptyRanks",function(){removeEmptyRanks(g)});time("    
nestingGraph.cleanup",function(){nestingGraph.cleanup(g)});time("    
normalizeRanks",func
 tion(){normalizeRanks(g)});time("    
assignRankMinMax",function(){assignRankMinMax(g)});time("    
removeEdgeLabelProxies",function(){removeEdgeLabelProxies(g)});time("    
normalize.run",function(){normalize.run(g)});time("    
parentDummyChains",function(){parentDummyChains(g)});time("    
addBorderSegments",function(){addBorderSegments(g)});time("    
order",function(){order(g)});time("    
insertSelfEdges",function(){insertSelfEdges(g)});time("    
position",function(){position(g)});time("    
positionSelfEdges",function(){positionSelfEdges(g)});time("    
setGraphDimensions",function(){setGraphDimensions(g)});time("    
removeBorderNodes",function(){removeBorderNodes(g)});time("    
normalize.undo",function(){normalize.undo(g)});time("    
assignNodeIntersects",function(){assignNodeIntersects(g)});time("    
reversePoints",function(){reversePointsForReversedEdges(g)});time("    
acyclic.undo",function(){acyclic.undo(g)})}function 
updateInputGraph(inputGraph,layoutGraph){_.each(inputGraph.nod
 es(),function(v){var 
inputLabel=inputGraph.node(v),layoutLabel=layoutGraph.node(v);if(inputLabel){inputLabel.x=layoutLabel.x;inputLabel.y=layoutLabel.y;if(layoutGraph.children(v).length){inputLabel.width=layoutLabel.width;inputLabel.height=layoutLabel.height}}});_.each(inputGraph.edges(),function(e){var
 
inputLabel=inputGraph.edge(e),layoutLabel=layoutGraph.edge(e);inputLabel.points=layoutLabel.points;if(_.has(layoutLabel,"x")){inputLabel.x=layoutLabel.x;inputLabel.y=layoutLabel.y}});inputGraph.graph().width=layoutGraph.graph().width;inputGraph.graph().height=layoutGraph.graph().height}var
 
graphNumAttrs=["nodesep","edgesep","ranksep","marginx","marginy"],graphDefaults={ranksep:50,edgesep:10,nodesep:50},graphAttrs=["acyclicer","ranker","rankdir","align"],nodeNumAttrs=["width","height"],nodeDefaults={width:0,height:0},edgeNumAttrs=["minlen","weight","width","height"],edgeDefaults={minlen:1,weight:1,width:0,height:0};function
 buildLayoutGraph(inputGraph){var g=new Graph({multigraph:true
 
,compound:true});g.setGraph(_.merge({},graphDefaults,selectNumberAttrs(inputGraph.graph(),graphNumAttrs),_.pick(inputGraph.graph(),graphAttrs)));_.each(inputGraph.nodes(),function(v){var
 
label=inputGraph.node(v);g.setNode(v,_.defaults(selectNumberAttrs(label,nodeNumAttrs),nodeDefaults));g.setParent(v,inputGraph.parent(v))});_.each(inputGraph.edges(),function(e){var
 
label=inputGraph.edge(e);g.setEdge(e,_.defaults(selectNumberAttrs(label,edgeNumAttrs),edgeDefaults))});return
 g}function makeSpaceForEdgeLabels(g){var 
graphLabel=g.graph();graphLabel.ranksep/=2;_.each(g.edges(),function(e){g.edge(e).minlen*=2})}function
 injectEdgeLabelProxies(g){_.each(g.edges(),function(e){var 
edge=g.edge(e);if(edge.width&&edge.height){var 
v=g.node(e.v),w=g.node(e.w),label={rank:(w.rank-v.rank)/2+v.rank,e:e};util.addDummyNode(g,"edge-proxy",label,"_ep")}})}function
 assignRankMinMax(g){var maxRank=0;_.each(g.nodes(),function(v){var 
node=g.node(v);if(node.borderTop){node.minRank=g.node(node.borderTop).rank
 
;node.maxRank=g.node(node.borderBottom).rank;maxRank=_.max(maxRank,node.maxRank)}});g.graph().maxRank=maxRank}function
 removeEdgeLabelProxies(g){_.each(g.nodes(),function(v){var 
node=g.node(v);if(node.dummy==="edge-proxy"){g.edge(node.e).labelRank=node.rank;g.removeNode(v)}})}function
 setGraphDimensions(g){var 
width=0,height=0,graph=g.graph();_.each(g.nodes(),function(v){var 
node=g.node(v);width=Math.max(width,node.x+node.width/2);height=Math.max(height,node.y+node.height/2)});graph.width=width;graph.height=height}function
 assignNodeIntersects(g){_.each(g.edges(),function(e){var 
edge=g.edge(e),nodeV=g.node(e.v),nodeW=g.node(e.w),p1,p2;if(!edge.points){edge.points=[];p1=nodeW;p2=nodeV}else{p1=edge.points[0];p2=edge.points[edge.points.length-1]}edge.points.unshift(util.intersectRect(nodeV,p1));edge.points.push(util.intersectRect(nodeW,p2))})}function
 reversePointsForReversedEdges(g){_.each(g.edges(),function(e){var 
edge=g.edge(e);if(edge.reversed){edge.points.reverse()}})}function rem
 oveBorderNodes(g){var 
rankdir=(g.graph().rankdir||"tb").toLowerCase();_.each(g.nodes(),function(v){if(g.children(v).length){var
 
node=g.node(v),t=g.node(node.borderTop),b=g.node(node.borderBottom),l=g.node(_.last(node.borderLeft)),r=g.node(_.last(node.borderRight)),tmp;if(rankdir==="bt"||rankdir==="rl"){tmp=t;t=b;b=tmp}if(rankdir==="lr"||rankdir==="rl"){tmp=t;t=l;l=tmp;tmp=b;b=r;r=tmp}node.width=r.x-l.x;node.height=b.y-t.y;node.x=l.x+node.width/2;node.y=t.y+node.height/2}});_.each(g.nodes(),function(v){if(g.node(v).dummy==="border"){g.removeNode(v)}})}function
 removeSelfEdges(g){_.each(g.edges(),function(e){if(e.v===e.w){var 
node=g.node(e.v);if(!node.selfEdges){node.selfEdges=[]}node.selfEdges.push({e:e,label:g.edge(e)});g.removeEdge(e)}})}function
 insertSelfEdges(g){var 
layers=util.buildLayerMatrix(g);_.each(layers,function(layer){var 
orderShift=0;_.each(layer,function(v,i){var 
node=g.node(v);node.order=i+orderShift;_.each(node.selfEdges,function(selfEdge){util.addDummyNode(g,"selfe
 
dge",{width:selfEdge.label.width,height:selfEdge.label.height,rank:node.rank,order:i+
 ++orderShift,e:selfEdge.e,label:selfEdge.label},"_se")});delete 
node.selfEdges})})}function 
positionSelfEdges(g){_.each(g.nodes(),function(v){var 
node=g.node(v);if(node.dummy==="selfedge"){var 
selfNode=g.node(node.e.v),x=selfNode.x+selfNode.width/2,y=selfNode.y,dx=node.x-x,dy=selfNode.height/2;g.setEdge(node.e,node.label);g.removeNode(v);node.label.points=[{x:x+2*dx/3,y:y-dy},{x:x+5*dx/6,y:y-dy},{x:x+dx,y:y},{x:x+5*dx/6,y:y+dy},{x:x+2*dx/3,y:y+dy}];node.label.x=node.x;node.label.y=node.y}})}function
 selectNumberAttrs(obj,attrs){return 
_.mapValues(_.pick(obj,attrs),Number)}},{"./acyclic":3,"./add-border-segments":4,"./nesting-graph":9,"./normalize":10,"./order":15,"./parent-dummy-chains":20,"./position":22,"./rank":24,"./util":27,graphlib:29,lodash:48}],9:[function(require,module,exports){var
 
_=require("lodash"),util=require("./util");module.exports={run:run,cleanup:cleanup};function
 run(g){var root
 
=util.addDummyNode(g,"root",{},"_root"),depths=treeDepths(g),height=_.max(depths)-1,nodeSep=2*height+1;g.graph().nestingRoot=root;_.each(g.edges(),function(e){g.edge(e).minlen*=nodeSep});var
 
weight=sumWeights(g)+1;_.each(g.children(),function(child){dfs(g,root,nodeSep,weight,height,depths,child)});g.graph().nodeRankFactor=nodeSep}function
 dfs(g,root,nodeSep,weight,height,depths,v){var 
children=g.children(v);if(!children.length){if(v!==root){g.setEdge(root,v,{weight:0,minlen:nodeSep})}return}var
 
top=util.addBorderNode(g,"_bt"),bottom=util.addBorderNode(g,"_bb"),label=g.node(v);g.setParent(top,v);label.borderTop=top;g.setParent(bottom,v);label.borderBottom=bottom;_.each(children,function(child){dfs(g,root,nodeSep,weight,height,depths,child);var
 
childNode=g.node(child),childTop=childNode.borderTop?childNode.borderTop:child,childBottom=childNode.borderBottom?childNode.borderBottom:child,thisWeight=childNode.borderTop?weight:2*weight,minlen=childTop!==childBottom?1:height-depths[v]+1;g.s
 
etEdge(top,childTop,{weight:thisWeight,minlen:minlen,nestingEdge:true});g.setEdge(childBottom,bottom,{weight:thisWeight,minlen:minlen,nestingEdge:true})});if(!g.parent(v)){g.setEdge(root,top,{weight:0,minlen:height+depths[v]})}}function
 treeDepths(g){var depths={};function dfs(v,depth){var 
children=g.children(v);if(children&&children.length){_.each(children,function(child){dfs(child,depth+1)})}depths[v]=depth}_.each(g.children(),function(v){dfs(v,1)});return
 depths}function sumWeights(g){return _.reduce(g.edges(),function(acc,e){return 
acc+g.edge(e).weight},0)}function cleanup(g){var 
graphLabel=g.graph();g.removeNode(graphLabel.nestingRoot);delete 
graphLabel.nestingRoot;_.each(g.edges(),function(e){var 
edge=g.edge(e);if(edge.nestingEdge){g.removeEdge(e)}})}},{"./util":27,lodash:48}],10:[function(require,module,exports){"use
 strict";var 
_=require("lodash"),util=require("./util");module.exports={run:run,undo:undo};function
 run(g){g.graph().dummyChains=[];_.each(g.edges(),function(edge
 ){normalizeEdge(g,edge)})}function normalizeEdge(g,e){var 
v=e.v,vRank=g.node(v).rank,w=e.w,wRank=g.node(w).rank,name=e.name,edgeLabel=g.edge(e),labelRank=edgeLabel.labelRank;if(wRank===vRank+1)return;g.removeEdge(e);var
 
dummy,attrs,i;for(i=0,++vRank;vRank<wRank;++i,++vRank){edgeLabel.points=[];attrs={width:0,height:0,edgeLabel:edgeLabel,edgeObj:e,rank:vRank};dummy=util.addDummyNode(g,"edge",attrs,"_d");if(vRank===labelRank){attrs.width=edgeLabel.width;attrs.height=edgeLabel.height;attrs.dummy="edge-label"}g.setEdge(v,dummy,{weight:edgeLabel.weight},name);if(i===0){g.graph().dummyChains.push(dummy)}v=dummy}g.setEdge(v,w,{weight:edgeLabel.weight},name)}function
 undo(g){_.each(g.graph().dummyChains,function(v){var 
node=g.node(v),origLabel=node.edgeLabel,w;g.setEdge(node.edgeObj,origLabel);while(node.dummy){w=g.successors(v)[0];g.removeNode(v);origLabel.points.push({x:node.x,y:node.y});if(node.dummy==="edge-label"){origLabel.x=node.x;origLabel.y=node.y}v=w;node=g.node(v)}})}},{"./util":
 27,lodash:48}],11:[function(require,module,exports){var 
_=require("lodash");module.exports=addSubgraphConstraints;function 
addSubgraphConstraints(g,cg,vs){var prev={},rootPrev;_.each(vs,function(v){var 
child=g.parent(v),parent,prevChild;while(child){parent=g.parent(child);if(parent){prevChild=prev[parent];prev[parent]=child}else{prevChild=rootPrev;rootPrev=child}if(prevChild&&prevChild!==child){cg.setEdge(prevChild,child);return}child=parent}})}},{lodash:48}],12:[function(require,module,exports){var
 _=require("lodash");module.exports=barycenter;function 
barycenter(g,movable){return _.map(movable,function(v){var 
inV=g.inEdges(v);if(!inV.length){return{v:v}}else{var 
result=_.reduce(inV,function(acc,e){var 
edge=g.edge(e),nodeU=g.node(e.v);return{sum:acc.sum+edge.weight*nodeU.order,weight:acc.weight+edge.weight}},{sum:0,weight:0});return{v:v,barycenter:result.sum/result.weight,weight:result.weight}}})}},{lodash:48}],13:[function(require,module,exports){var
 _=require("lodash"),Graph=requ
 ire("graphlib").Graph;module.exports=buildLayerGraph;function 
buildLayerGraph(g,rank,relationship){var root=createRootNode(g),result=new 
Graph({compound:true}).setGraph({root:root}).setDefaultNodeLabel(function(v){return
 g.node(v)});_.each(g.nodes(),function(v){var 
node=g.node(v),parent=g.parent(v);if(node.rank===rank||node.minRank<=rank&&rank<=node.maxRank){result.setNode(v);result.setParent(v,parent||root);_.each(g[relationship](v),function(e){var
 
u=e.v===v?e.w:e.v,edge=result.edge(u,v),weight=!_.isUndefined(edge)?edge.weight:0;result.setEdge(u,v,{weight:g.edge(e).weight+weight})});if(_.has(node,"minRank")){result.setNode(v,{borderLeft:node.borderLeft[rank],borderRight:node.borderRight[rank]})}}});return
 result}function createRootNode(g){var 
v;while(g.hasNode(v=_.uniqueId("_root")));return 
v}},{graphlib:29,lodash:48}],14:[function(require,module,exports){"use 
strict";var _=require("lodash");module.exports=crossCount;function 
crossCount(g,layering){var cc=0;for(var i=1;i<layering.l
 ength;++i){cc+=twoLayerCrossCount(g,layering[i-1],layering[i])}return 
cc}function twoLayerCrossCount(g,northLayer,southLayer){var 
southPos=_.zipObject(southLayer,_.map(southLayer,function(v,i){return i}));var 
southEntries=_.flatten(_.map(northLayer,function(v){return 
_.chain(g.outEdges(v)).map(function(e){return{pos:southPos[e.w],weight:g.edge(e).weight}}).sortBy("pos").value()}),true);var
 firstIndex=1;while(firstIndex<southLayer.length)firstIndex<<=1;var 
treeSize=2*firstIndex-1;firstIndex-=1;var tree=_.map(new 
Array(treeSize),function(){return 0});var 
cc=0;_.each(southEntries.forEach(function(entry){var 
index=entry.pos+firstIndex;tree[index]+=entry.weight;var 
weightSum=0;while(index>0){if(index%2){weightSum+=tree[index+1]}index=index-1>>1;tree[index]+=entry.weight}cc+=entry.weight*weightSum}));return
 cc}},{lodash:48}],15:[function(require,module,exports){"use strict";var 
_=require("lodash"),initOrder=require("./init-order"),crossCount=require("./cross-count"),sortSubgraph=require("
 
./sort-subgraph"),buildLayerGraph=require("./build-layer-graph"),addSubgraphConstraints=require("./add-subgraph-constraints"),Graph=require("graphlib").Graph,util=require("../util");module.exports=order;function
 order(g){var 
maxRank=util.maxRank(g),downLayerGraphs=buildLayerGraphs(g,_.range(1,maxRank+1),"inEdges"),upLayerGraphs=buildLayerGraphs(g,_.range(maxRank-1,-1,-1),"outEdges");var
 layering=initOrder(g);assignOrder(g,layering);var 
bestCC=Number.POSITIVE_INFINITY,best;for(var 
i=0,lastBest=0;lastBest<4;++i,++lastBest){sweepLayerGraphs(i%2?downLayerGraphs:upLayerGraphs,i%4>=2);layering=util.buildLayerMatrix(g);var
 
cc=crossCount(g,layering);if(cc<bestCC){lastBest=0;best=_.cloneDeep(layering);bestCC=cc}}assignOrder(g,best)}function
 buildLayerGraphs(g,ranks,relationship){return 
_.map(ranks,function(rank){return 
buildLayerGraph(g,rank,relationship)})}function 
sweepLayerGraphs(layerGraphs,biasRight){var cg=new 
Graph;_.each(layerGraphs,function(lg){var root=lg.graph().root;var sorted=so
 
rtSubgraph(lg,root,cg,biasRight);_.each(sorted.vs,function(v,i){lg.node(v).order=i});addSubgraphConstraints(lg,cg,sorted.vs)})}function
 
assignOrder(g,layering){_.each(layering,function(layer){_.each(layer,function(v,i){g.node(v).order=i})})}},{"../util":27,"./add-subgraph-constraints":11,"./build-layer-graph":13,"./cross-count":14,"./init-order":16,"./sort-subgraph":18,graphlib:29,lodash:48}],16:[function(require,module,exports){"use
 strict";var _=require("lodash");module.exports=initOrder;function 
initOrder(g){var 
visited={},simpleNodes=_.filter(g.nodes(),function(v){return!g.children(v).length}),maxRank=_.max(_.map(simpleNodes,function(v){return
 
g.node(v).rank})),layers=_.map(_.range(maxRank+1),function(){return[]});function
 dfs(v){if(_.has(visited,v))return;visited[v]=true;var 
node=g.node(v);layers[node.rank].push(v);_.each(g.successors(v),dfs)}var 
orderedVs=_.sortBy(simpleNodes,function(v){return 
g.node(v).rank});_.each(orderedVs,dfs);return 
layers}},{lodash:48}],17:[function(re
 quire,module,exports){"use strict";var 
_=require("lodash");module.exports=resolveConflicts;function 
resolveConflicts(entries,cg){var 
mappedEntries={};_.each(entries,function(entry,i){var 
tmp=mappedEntries[entry.v]={indegree:0,"in":[],out:[],vs:[entry.v],i:i};if(!_.isUndefined(entry.barycenter)){tmp.barycenter=entry.barycenter;tmp.weight=entry.weight}});_.each(cg.edges(),function(e){var
 
entryV=mappedEntries[e.v],entryW=mappedEntries[e.w];if(!_.isUndefined(entryV)&&!_.isUndefined(entryW)){entryW.indegree++;entryV.out.push(mappedEntries[e.w])}});var
 
sourceSet=_.filter(mappedEntries,function(entry){return!entry.indegree});return 
doResolveConflicts(sourceSet)}function doResolveConflicts(sourceSet){var 
entries=[];function handleIn(vEntry){return 
function(uEntry){if(uEntry.merged){return}if(_.isUndefined(uEntry.barycenter)||_.isUndefined(vEntry.barycenter)||uEntry.barycenter>=vEntry.barycenter){mergeEntries(vEntry,uEntry)}}}function
 handleOut(vEntry){return function(wEntry){wEntry.in.push(
 
vEntry);if(--wEntry.indegree===0){sourceSet.push(wEntry)}}}while(sourceSet.length){var
 
entry=sourceSet.pop();entries.push(entry);_.each(entry.in.reverse(),handleIn(entry));_.each(entry.out,handleOut(entry))}return
 
_.chain(entries).filter(function(entry){return!entry.merged}).map(function(entry){return
 _.pick(entry,["vs","i","barycenter","weight"])}).value()}function 
mergeEntries(target,source){var 
sum=0,weight=0;if(target.weight){sum+=target.barycenter*target.weight;weight+=target.weight}if(source.weight){sum+=source.barycenter*source.weight;weight+=source.weight}target.vs=source.vs.concat(target.vs);target.barycenter=sum/weight;target.weight=weight;target.i=Math.min(source.i,target.i);source.merged=true}},{lodash:48}],18:[function(require,module,exports){var
 
_=require("lodash"),barycenter=require("./barycenter"),resolveConflicts=require("./resolve-conflicts"),sort=require("./sort");module.exports=sortSubgraph;function
 sortSubgraph(g,v,cg,biasRight){var movable=g.children(v),node=g.
 
node(v),bl=node?node.borderLeft:undefined,br=node?node.borderRight:undefined,subgraphs={};if(bl){movable=_.filter(movable,function(w){return
 w!==bl&&w!==br})}var 
barycenters=barycenter(g,movable);_.each(barycenters,function(entry){if(g.children(entry.v).length){var
 
subgraphResult=sortSubgraph(g,entry.v,cg,biasRight);subgraphs[entry.v]=subgraphResult;if(_.has(subgraphResult,"barycenter")){mergeBarycenters(entry,subgraphResult)}}});var
 
entries=resolveConflicts(barycenters,cg);expandSubgraphs(entries,subgraphs);var 
result=sort(entries,biasRight);if(bl){result.vs=_.flatten([bl,result.vs,br],true);if(g.predecessors(bl).length){var
 
blPred=g.node(g.predecessors(bl)[0]),brPred=g.node(g.predecessors(br)[0]);if(!_.has(result,"barycenter")){result.barycenter=0;result.weight=0}result.barycenter=(result.barycenter*result.weight+blPred.order+brPred.order)/(result.weight+2);result.weight+=2}}return
 result}function 
expandSubgraphs(entries,subgraphs){_.each(entries,function(entry){entry.vs=_.flatten
 (entry.vs.map(function(v){if(subgraphs[v]){return subgraphs[v].vs}return 
v}),true)})}function 
mergeBarycenters(target,other){if(!_.isUndefined(target.barycenter)){target.barycenter=(target.barycenter*target.weight+other.barycenter*other.weight)/(target.weight+other.weight);target.weight+=other.weight}else{target.barycenter=other.barycenter;target.weight=other.weight}}},{"./barycenter":12,"./resolve-conflicts":17,"./sort":19,lodash:48}],19:[function(require,module,exports){var
 _=require("lodash"),util=require("../util");module.exports=sort;function 
sort(entries,biasRight){var parts=util.partition(entries,function(entry){return 
_.has(entry,"barycenter")});var 
sortable=parts.lhs,unsortable=_.sortBy(parts.rhs,function(entry){return-entry.i}),vs=[],sum=0,weight=0,vsIndex=0;sortable.sort(compareWithBias(!!biasRight));vsIndex=consumeUnsortable(vs,unsortable,vsIndex);_.each(sortable,function(entry){vsIndex+=entry.vs.length;vs.push(entry.vs);sum+=entry.barycenter*entry.weight;weight+=entry.w
 eight;vsIndex=consumeUnsortable(vs,unsortable,vsIndex)});var 
result={vs:_.flatten(vs,true)};if(weight){result.barycenter=sum/weight;result.weight=weight}return
 result}function consumeUnsortable(vs,unsortable,index){var 
last;while(unsortable.length&&(last=_.last(unsortable)).i<=index){unsortable.pop();vs.push(last.vs);index++}return
 index}function compareWithBias(bias){return 
function(entryV,entryW){if(entryV.barycenter<entryW.barycenter){return-1}else 
if(entryV.barycenter>entryW.barycenter){return 
1}return!bias?entryV.i-entryW.i:entryW.i-entryV.i}}},{"../util":27,lodash:48}],20:[function(require,module,exports){var
 _=require("lodash");module.exports=parentDummyChains;function 
parentDummyChains(g){var 
postorderNums=postorder(g);_.each(g.graph().dummyChains,function(v){var 
node=g.node(v),edgeObj=node.edgeObj,pathData=findPath(g,postorderNums,edgeObj.v,edgeObj.w),path=pathData.path,lca=pathData.lca,pathIdx=0,pathV=path[pathIdx],ascending=true;while(v!==edgeObj.w){node=g.node(v);if(asce
 
nding){while((pathV=path[pathIdx])!==lca&&g.node(pathV).maxRank<node.rank){pathIdx++}if(pathV===lca){ascending=false}}if(!ascending){while(pathIdx<path.length-1&&g.node(pathV=path[pathIdx+1]).minRank<=node.rank){pathIdx++}pathV=path[pathIdx]}g.setParent(v,pathV);v=g.successors(v)[0]}})}function
 findPath(g,postorderNums,v,w){var 
vPath=[],wPath=[],low=Math.min(postorderNums[v].low,postorderNums[w].low),lim=Math.max(postorderNums[v].lim,postorderNums[w].lim),parent,lca;parent=v;do{parent=g.parent(parent);vPath.push(parent)}while(parent&&(postorderNums[parent].low>low||lim>postorderNums[parent].lim));lca=parent;parent=w;while((parent=g.parent(parent))!==lca){wPath.push(parent)}return{path:vPath.concat(wPath.reverse()),lca:lca}}function
 postorder(g){var result={},lim=0;function dfs(v){var 
low=lim;_.each(g.children(v),dfs);result[v]={low:low,lim:lim++}}_.each(g.children(),dfs);return
 result}},{lodash:48}],21:[function(require,module,exports){"use strict";var 
_=require("lodash"),util=requi
 
re("../util");module.exports={positionX:positionX,findType1Conflicts:findType1Conflicts,findType2Conflicts:findType2Conflicts,addConflict:addConflict,hasConflict:hasConflict,verticalAlignment:verticalAlignment,horizontalCompaction:horizontalCompaction,alignCoordinates:alignCoordinates,findSmallestWidthAlignment:findSmallestWidthAlignment,balance:balance};function
 findType1Conflicts(g,layering){var conflicts={};function 
visitLayer(prevLayer,layer){var 
k0=0,scanPos=0,prevLayerLength=prevLayer.length,lastNode=_.last(layer);_.each(layer,function(v,i){var
 
w=findOtherInnerSegmentNode(g,v),k1=w?g.node(w).order:prevLayerLength;if(w||v===lastNode){_.each(layer.slice(scanPos,i+1),function(scanNode){_.each(g.predecessors(scanNode),function(u){var
 
uLabel=g.node(u),uPos=uLabel.order;if((uPos<k0||k1<uPos)&&!(uLabel.dummy&&g.node(scanNode).dummy)){addConflict(conflicts,u,scanNode)}})});scanPos=i+1;k0=k1}});return
 layer}_.reduce(layering,visitLayer);return conflicts}function 
findType2Conflicts(g,la
 yering){var conflicts={};function 
scan(south,southPos,southEnd,prevNorthBorder,nextNorthBorder){var 
v;_.each(_.range(southPos,southEnd),function(i){v=south[i];if(g.node(v).dummy){_.each(g.predecessors(v),function(u){var
 
uNode=g.node(u);if(uNode.dummy&&(uNode.order<prevNorthBorder||uNode.order>nextNorthBorder)){addConflict(conflicts,u,v)}})}})}function
 visitLayer(north,south){var 
prevNorthPos=-1,nextNorthPos,southPos=0;_.each(south,function(v,southLookahead){if(g.node(v).dummy==="border"){var
 
predecessors=g.predecessors(v);if(predecessors.length){nextNorthPos=g.node(predecessors[0]).order;scan(south,southPos,southLookahead,prevNorthPos,nextNorthPos);southPos=southLookahead;prevNorthPos=nextNorthPos}}scan(south,southPos,south.length,nextNorthPos,north.length)});return
 south}_.reduce(layering,visitLayer);return conflicts}function 
findOtherInnerSegmentNode(g,v){if(g.node(v).dummy){return 
_.find(g.predecessors(v),function(u){return g.node(u).dummy})}}function 
addConflict(conflicts,v,w){i
 f(v>w){var tmp=v;v=w;w=tmp}var 
conflictsV=conflicts[v];if(!conflictsV){conflicts[v]=conflictsV={}}conflictsV[w]=true}function
 hasConflict(conflicts,v,w){if(v>w){var tmp=v;v=w;w=tmp}return 
_.has(conflicts[v],w)}function 
verticalAlignment(g,layering,conflicts,neighborFn){var 
root={},align={},pos={};_.each(layering,function(layer){_.each(layer,function(v,order){root[v]=v;align[v]=v;pos[v]=order})});_.each(layering,function(layer){var
 prevIdx=-1;_.each(layer,function(v){var 
ws=neighborFn(v);if(ws.length){ws=_.sortBy(ws,function(w){return pos[w]});var 
mp=(ws.length-1)/2;for(var i=Math.floor(mp),il=Math.ceil(mp);i<=il;++i){var 
w=ws[i];if(align[v]===v&&prevIdx<pos[w]&&!hasConflict(conflicts,v,w)){align[w]=v;align[v]=root[v]=root[w];prevIdx=pos[w]}}}})});return{root:root,align:align}}function
 horizontalCompaction(g,layering,root,align){var 
shift={},sink={},xs={},pred={},graphLabel=g.graph(),sepFn=sep(graphLabel.nodesep,graphLabel.edgesep);_.each(layering,function(layer){_.each(layer,functio
 
n(v,order){sink[v]=v;shift[v]=Number.POSITIVE_INFINITY;pred[v]=layer[order-1]})});_.each(g.nodes(),function(v){if(root[v]===v){placeBlock(g,layering,sepFn,root,align,shift,sink,pred,xs,v)}});_.each(layering,function(layer){_.each(layer,function(v){xs[v]=xs[root[v]];if(v===root[v]&&shift[sink[root[v]]]<Number.POSITIVE_INFINITY){xs[v]+=shift[sink[root[v]]]}})});return
 xs}function 
placeBlock(g,layering,sepFn,root,align,shift,sink,pred,xs,v){if(_.has(xs,v))return;xs[v]=0;var
 
w=v,u;do{if(pred[w]){u=root[pred[w]];placeBlock(g,layering,sepFn,root,align,shift,sink,pred,xs,u);if(sink[v]===v){sink[v]=sink[u]}var
 
delta=sepFn(g,w,pred[w]);if(sink[v]!==sink[u]){shift[sink[u]]=Math.min(shift[sink[u]],xs[v]-xs[u]-delta)}else{xs[v]=Math.max(xs[v],xs[u]+delta)}}w=align[w]}while(w!==v)}function
 findSmallestWidthAlignment(g,xss){return _.min(xss,function(xs){var 
min=_.min(xs,function(x,v){return 
x-width(g,v)/2}),max=_.max(xs,function(x,v){return x+width(g,v)/2});return 
max-min})}function alignCoordina
 tes(xss,alignTo){var 
alignToMin=_.min(alignTo),alignToMax=_.max(alignTo);_.each(["u","d"],function(vert){_.each(["l","r"],function(horiz){var
 
alignment=vert+horiz,xs=xss[alignment],delta;if(xs===alignTo)return;delta=horiz==="l"?alignToMin-_.min(xs):alignToMax-_.max(xs);if(delta){xss[alignment]=_.mapValues(xs,function(x){return
 x+delta})}})})}function balance(xss,align){return 
_.mapValues(xss.ul,function(ignore,v){if(align){return 
xss[align.toLowerCase()][v]}else{var 
xs=_.sortBy(_.pluck(xss,v));return(xs[1]+xs[2])/2}})}function positionX(g){var 
layering=util.buildLayerMatrix(g),conflicts=_.merge(findType1Conflicts(g,layering),findType2Conflicts(g,layering));
+var 
xss={},adjustedLayering;_.each(["u","d"],function(vert){adjustedLayering=vert==="u"?layering:_.values(layering).reverse();_.each(["l","r"],function(horiz){if(horiz==="r"){adjustedLayering=_.map(adjustedLayering,function(inner){return
 _.values(inner).reverse()})}var 
neighborFn=vert==="u"?g.predecessors.bind(g):g.successors.bind(g);var 
align=verticalAlignment(g,adjustedLayering,conflicts,neighborFn);var 
xs=horizontalCompaction(g,adjustedLayering,align.root,align.align);if(horiz==="r"){xs=_.mapValues(xs,function(x){return-x})}xss[vert+horiz]=xs})});var
 
smallestWidth=findSmallestWidthAlignment(g,xss);alignCoordinates(xss,smallestWidth);return
 balance(xss,g.graph().align)}function sep(nodeSep,edgeSep){return 
function(g,v,u){var 
vLabel=g.node(v),uLabel=g.node(u),sums=uLabel.width+(uLabel.dummy?edgeSep:nodeSep)+(vLabel.dummy?edgeSep:nodeSep)+vLabel.width;return
 sums/2}}function width(g,v){return 
g.node(v).width}},{"../util":27,lodash:48}],22:[function(require,module,exports){"use
 stric
 t";var 
_=require("lodash"),util=require("../util"),positionX=require("./bk").positionX;module.exports=position;function
 position(g){g=util.asNonCompoundGraph(g);var 
rankDir=(g.graph().rankdir||"tb").toLowerCase();if(rankDir==="lr"||rankDir==="rl"){swapWidthHeight(g)}positionY(g);_.each(positionX(g),function(x,v){g.node(v).x=x});if(rankDir==="bt"||rankDir==="rl"){reverseY(g)}if(rankDir==="lr"||rankDir==="rl"){swapXY(g);swapWidthHeight(g)}translate(g)}function
 positionY(g){var 
layering=util.buildLayerMatrix(g),rankSep=g.graph().ranksep,prevY=0;_.each(layering,function(layer){var
 maxHeight=_.max(_.map(layer,function(v){return 
g.node(v).height}));_.each(layer,function(v){g.node(v).y=prevY+maxHeight/2});prevY+=maxHeight+rankSep})}function
 translate(g){var 
minX=Number.POSITIVE_INFINITY,maxX=0,minY=Number.POSITIVE_INFINITY,maxY=0,graphLabel=g.graph(),marginX=graphLabel.marginx||0,marginY=graphLabel.marginy||0;_.each(g.nodes(),function(v){var
 node=g.node(v),x=node.x,y=node.y,w=node.width,h=
 
node.height;minX=Math.min(minX,x-w/2);maxX=Math.max(maxX,x+w/2);minY=Math.min(minY,y-h/2);maxY=Math.max(maxY,y+h/2)});minX-=marginX;minY-=marginY;_.each(g.nodes(),function(v){var
 
node=g.node(v);node.x-=minX;node.y-=minY});graphLabel.width=maxX-minX+marginX;graphLabel.height=maxY-minY+marginY}function
 reverseY(g){_.each(g.nodes(),function(v){var 
node=g.node(v);node.y=-node.y})}function 
swapWidthHeight(g){_.each(g.nodes(),function(v){var 
node=g.node(v),width=node.width,height=node.height;node.width=height;node.height=width})}function
 swapXY(g){_.each(g.nodes(),function(v){var 
node=g.node(v),x=node.x,y=node.y;node.x=y;node.y=x})}},{"../util":27,"./bk":21,lodash:48}],23:[function(require,module,exports){"use
 strict";var 
_=require("lodash"),Graph=require("graphlib").Graph,slack=require("./util").slack;module.exports=feasibleTree;function
 feasibleTree(g){var t=new Graph({directed:false});var 
start=g.nodes()[0],size=g.nodeCount();t.setNode(start,{});var 
edge,delta;while(tightTree(t,g)<size
 
){edge=findMinSlackEdge(t,g);delta=t.hasNode(edge.v)?slack(g,edge):-slack(g,edge);shiftRanks(t,g,delta)}return
 t}function tightTree(t,g){function 
dfs(v){_.each(g.nodeEdges(v),function(e){var 
edgeV=e.v,w=v===edgeV?e.w:edgeV;if(!t.hasNode(w)&&!slack(g,e)){t.setNode(w,{});t.setEdge(v,w,{});dfs(w)}})}_.each(t.nodes(),dfs);return
 t.nodeCount()}function findMinSlackEdge(t,g){return 
_.min(g.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w)){return 
slack(g,e)}})}function 
shiftRanks(t,g,delta){_.each(t.nodes(),function(v){g.node(v).rank+=delta})}},{"./util":26,graphlib:29,lodash:48}],24:[function(require,module,exports){"use
 strict";var 
rankUtil=require("./util"),longestPath=rankUtil.longestPath,feasibleTree=require("./feasible-tree"),networkSimplex=require("./network-simplex");module.exports=rank;function
 
rank(g){switch(g.graph().ranker){case"network-simplex":networkSimplexRanker(g);break;case"tight-tree":tightTreeRanker(g);break;case"longest-path":longestPathRanker(g);break;default:ne
 tworkSimplexRanker(g)}}var longestPathRanker=longestPath;function 
tightTreeRanker(g){longestPath(g);feasibleTree(g)}function 
networkSimplexRanker(g){networkSimplex(g)}},{"./feasible-tree":23,"./network-simplex":25,"./util":26}],25:[function(require,module,exports){"use
 strict";var 
_=require("lodash"),feasibleTree=require("./feasible-tree"),slack=require("./util").slack,initRank=require("./util").longestPath,preorder=require("graphlib").alg.preorder,postorder=require("graphlib").alg.postorder,simplify=require("../util").simplify;module.exports=networkSimplex;networkSimplex.initLowLimValues=initLowLimValues;networkSimplex.initCutValues=initCutValues;networkSimplex.calcCutValue=calcCutValue;networkSimplex.leaveEdge=leaveEdge;networkSimplex.enterEdge=enterEdge;networkSimplex.exchangeEdges=exchangeEdges;function
 networkSimplex(g){g=simplify(g);initRank(g);var 
t=feasibleTree(g);initLowLimValues(t);initCutValues(t,g);var 
e,f;while(e=leaveEdge(t)){f=enterEdge(t,g,e);exchangeEdges(t,g,e,f)}}
 function initCutValues(t,g){var 
vs=postorder(t,t.nodes());vs=vs.slice(0,vs.length-1);_.each(vs,function(v){assignCutValue(t,g,v)})}function
 assignCutValue(t,g,child){var 
childLab=t.node(child),parent=childLab.parent;t.edge(child,parent).cutvalue=calcCutValue(t,g,child)}function
 calcCutValue(t,g,child){var 
childLab=t.node(child),parent=childLab.parent,childIsTail=true,graphEdge=g.edge(child,parent),cutValue=0;if(!graphEdge){childIsTail=false;graphEdge=g.edge(parent,child)}cutValue=graphEdge.weight;_.each(g.nodeEdges(child),function(e){var
 isOutEdge=e.v===child,other=isOutEdge?e.w:e.v;if(other!==parent){var 
pointsToHead=isOutEdge===childIsTail,otherWeight=g.edge(e).weight;cutValue+=pointsToHead?otherWeight:-otherWeight;if(isTreeEdge(t,child,other)){var
 
otherCutValue=t.edge(child,other).cutvalue;cutValue+=pointsToHead?-otherCutValue:otherCutValue}}});return
 cutValue}function 
initLowLimValues(tree,root){if(arguments.length<2){root=tree.nodes()[0]}dfsAssignLowLim(tree,{},1,root)}function
  dfsAssignLowLim(tree,visited,nextLim,v,parent){var 
low=nextLim,label=tree.node(v);visited[v]=true;_.each(tree.neighbors(v),function(w){if(!_.has(visited,w)){nextLim=dfsAssignLowLim(tree,visited,nextLim,w,v)}});label.low=low;label.lim=nextLim++;if(parent){label.parent=parent}else{delete
 label.parent}return nextLim}function leaveEdge(tree){return 
_.find(tree.edges(),function(e){return tree.edge(e).cutvalue<0})}function 
enterEdge(t,g,edge){var 
v=edge.v,w=edge.w;if(!g.hasEdge(v,w)){v=edge.w;w=edge.v}var 
vLabel=t.node(v),wLabel=t.node(w),tailLabel=vLabel,flip=false;if(vLabel.lim>wLabel.lim){tailLabel=wLabel;flip=true}var
 candidates=_.filter(g.edges(),function(edge){return 
flip===isDescendant(t,t.node(edge.v),tailLabel)&&flip!==isDescendant(t,t.node(edge.w),tailLabel)});return
 _.min(candidates,function(edge){return slack(g,edge)})}function 
exchangeEdges(t,g,e,f){var 
v=e.v,w=e.w;t.removeEdge(v,w);t.setEdge(f.v,f.w,{});initLowLimValues(t);initCutValues(t,g);updateRanks(t,g)}function
 update
 Ranks(t,g){var 
root=_.find(t.nodes(),function(v){return!g.node(v).parent}),vs=preorder(t,root);vs=vs.slice(1);_.each(vs,function(v){var
 
parent=t.node(v).parent,edge=g.edge(v,parent),flipped=false;if(!edge){edge=g.edge(parent,v);flipped=true}g.node(v).rank=g.node(parent).rank+(flipped?edge.minlen:-edge.minlen)})}function
 isTreeEdge(tree,u,v){return tree.hasEdge(u,v)}function 
isDescendant(tree,vLabel,rootLabel){return 
rootLabel.low<=vLabel.lim&&vLabel.lim<=rootLabel.lim}},{"../util":27,"./feasible-tree":23,"./util":26,graphlib:29,lodash:48}],26:[function(require,module,exports){"use
 strict";var 
_=require("lodash");module.exports={longestPath:longestPath,slack:slack};function
 longestPath(g){var visited={};function dfs(v){var 
label=g.node(v);if(_.has(visited,v)){return label.rank}visited[v]=true;var 
rank=_.min(_.map(g.outEdges(v),function(e){return 
dfs(e.w)-g.edge(e).minlen}));if(rank===Number.POSITIVE_INFINITY){rank=0}return 
label.rank=rank}_.each(g.sources(),dfs)}function slack(g,e){r
 eturn 
g.node(e.w).rank-g.node(e.v).rank-g.edge(e).minlen}},{lodash:48}],27:[function(require,module,exports){"use
 strict";var 
_=require("lodash"),Graph=require("graphlib").Graph;module.exports={addDummyNode:addDummyNode,simplify:simplify,asNonCompoundGraph:asNonCompoundGraph,successorWeights:successorWeights,predecessorWeights:predecessorWeights,intersectRect:intersectRect,buildLayerMatrix:buildLayerMatrix,normalizeRanks:normalizeRanks,removeEmptyRanks:removeEmptyRanks,addBorderNode:addBorderNode,maxRank:maxRank,partition:partition,time:time,notime:notime};function
 addDummyNode(g,type,attrs,name){var 
v;do{v=_.uniqueId(name)}while(g.hasNode(v));attrs.dummy=type;g.setNode(v,attrs);return
 v}function simplify(g){var simplified=(new 
Graph).setGraph(g.graph());_.each(g.nodes(),function(v){simplified.setNode(v,g.node(v))});_.each(g.edges(),function(e){var
 
simpleLabel=simplified.edge(e.v,e.w)||{weight:0,minlen:1},label=g.edge(e);simplified.setEdge(e.v,e.w,{weight:simpleLabel.weight+label.we
 ight,minlen:Math.max(simpleLabel.minlen,label.minlen)})});return 
simplified}function asNonCompoundGraph(g){var simplified=new 
Graph({multigraph:g.isMultigraph()}).setGraph(g.graph());_.each(g.nodes(),function(v){if(!g.children(v).length){simplified.setNode(v,g.node(v))}});_.each(g.edges(),function(e){simplified.setEdge(e,g.edge(e))});return
 simplified}function successorWeights(g){var 
weightMap=_.map(g.nodes(),function(v){var 
sucs={};_.each(g.outEdges(v),function(e){sucs[e.w]=(sucs[e.w]||0)+g.edge(e).weight});return
 sucs});return _.zipObject(g.nodes(),weightMap)}function 
predecessorWeights(g){var weightMap=_.map(g.nodes(),function(v){var 
preds={};_.each(g.inEdges(v),function(e){preds[e.v]=(preds[e.v]||0)+g.edge(e).weight});return
 preds});return _.zipObject(g.nodes(),weightMap)}function 
intersectRect(rect,point){var x=rect.x;var y=rect.y;var dx=point.x-x;var 
dy=point.y-y;var w=rect.width/2;var h=rect.height/2;if(!dx&&!dy){throw new 
Error("Not possible to find intersection inside of th
 e rectangle")}var 
sx,sy;if(Math.abs(dy)*w>Math.abs(dx)*h){if(dy<0){h=-h}sx=h*dx/dy;sy=h}else{if(dx<0){w=-w}sx=w;sy=w*dy/dx}return{x:x+sx,y:y+sy}}function
 buildLayerMatrix(g){var 
layering=_.map(_.range(maxRank(g)+1),function(){return[]});_.each(g.nodes(),function(v){var
 
node=g.node(v),rank=node.rank;if(!_.isUndefined(rank)){layering[rank][node.order]=v}});return
 layering}function normalizeRanks(g){var 
min=_.min(_.map(g.nodes(),function(v){return 
g.node(v).rank}));_.each(g.nodes(),function(v){var 
node=g.node(v);if(_.has(node,"rank")){node.rank-=min}})}function 
removeEmptyRanks(g){var offset=_.min(_.map(g.nodes(),function(v){return 
g.node(v).rank}));var layers=[];_.each(g.nodes(),function(v){var 
rank=g.node(v).rank-offset;if(!_.has(layers,rank)){layers[rank]=[]}layers[rank].push(v)});var
 
delta=0,nodeRankFactor=g.graph().nodeRankFactor;_.each(layers,function(vs,i){if(_.isUndefined(vs)&&i%nodeRankFactor!==0){--delta}else
 if(delta){_.each(vs,function(v){g.node(v).rank+=delta})}})}function
  addBorderNode(g,prefix,rank,order){var 
node={width:0,height:0};if(arguments.length>=4){node.rank=rank;node.order=order}return
 addDummyNode(g,"border",node,prefix)}function maxRank(g){return 
_.max(_.map(g.nodes(),function(v){var 
rank=g.node(v).rank;if(!_.isUndefined(rank)){return rank}}))}function 
partition(collection,fn){var 
result={lhs:[],rhs:[]};_.each(collection,function(value){if(fn(value)){result.lhs.push(value)}else{result.rhs.push(value)}});return
 result}function time(name,fn){var start=_.now();try{return 
fn()}finally{console.log(name+" time: "+(_.now()-start)+"ms")}}function 
notime(name,fn){return 
fn()}},{graphlib:29,lodash:48}],28:[function(require,module,exports){module.exports="0.5.1"},{}],29:[function(require,module,exports){var
 
_=require("lodash");module.exports=_.clone(require("./lib"));module.exports.json=require("./lib/json");module.exports.alg=require("./lib/alg")},{"./lib":45,"./lib/alg":36,"./lib/json":46,lodash:48}],30:[function(require,module,exports){var
 _=req
 uire("lodash");module.exports=components;function components(g){var 
visited={},cmpts=[],cmpt;function 
dfs(v){if(_.has(visited,v))return;visited[v]=true;cmpt.push(v);_.each(g.successors(v),dfs);_.each(g.predecessors(v),dfs)}_.each(g.nodes(),function(v){cmpt=[];dfs(v);if(cmpt.length){cmpts.push(cmpt)}});return
 cmpts}},{lodash:48}],31:[function(require,module,exports){var 
_=require("lodash");module.exports=dfs;function 
dfs(g,vs,order){if(!_.isArray(vs)){vs=[vs]}var 
acc=[],visited={};_.each(vs,function(v){if(!g.hasNode(v)){throw new 
Error("Graph does not have node: 
"+v)}doDfs(g,v,order==="post",visited,acc)});return acc}function 
doDfs(g,v,postorder,visited,acc){if(!_.has(visited,v)){visited[v]=true;if(!postorder){acc.push(v)}_.each(g.neighbors(v),function(w){doDfs(g,w,postorder,visited,acc)});if(postorder){acc.push(v)}}}},{lodash:48}],32:[function(require,module,exports){var
 
dijkstra=require("./dijkstra"),_=require("lodash");module.exports=dijkstraAll;function
 dijkstraAll(g,weightFunc,e
 dgeFunc){return 
_.transform(g.nodes(),function(acc,v){acc[v]=dijkstra(g,v,weightFunc,edgeFunc)},{})}},{"./dijkstra":33,lodash:48}],33:[function(require,module,exports){var
 
_=require("lodash"),PriorityQueue=require("../data/priority-queue");module.exports=dijkstra;var
 DEFAULT_WEIGHT_FUNC=_.constant(1);function 
dijkstra(g,source,weightFn,edgeFn){return 
runDijkstra(g,String(source),weightFn||DEFAULT_WEIGHT_FUNC,edgeFn||function(v){return
 g.outEdges(v)})}function runDijkstra(g,source,weightFn,edgeFn){var 
results={},pq=new PriorityQueue,v,vEntry;var updateNeighbors=function(edge){var 
w=edge.v!==v?edge.v:edge.w,wEntry=results[w],weight=weightFn(edge),distance=vEntry.distance+weight;if(weight<0){throw
 new Error("dijkstra does not allow negative edge weights. "+"Bad edge: 
"+edge+" Weight: 
"+weight)}if(distance<wEntry.distance){wEntry.distance=distance;wEntry.predecessor=v;pq.decrease(w,distance)}};g.nodes().forEach(function(v){var
 distance=v===source?0:Number.POSITIVE_INFINITY;results[v]={d
 
istance:distance};pq.add(v,distance)});while(pq.size()>0){v=pq.removeMin();vEntry=results[v];if(vEntry.distance===Number.POSITIVE_INFINITY){break}edgeFn(v).forEach(updateNeighbors)}return
 
results}},{"../data/priority-queue":43,lodash:48}],34:[function(require,module,exports){var
 
_=require("lodash"),tarjan=require("./tarjan");module.exports=findCycles;function
 findCycles(g){return _.filter(tarjan(g),function(cmpt){return 
cmpt.length>1})}},{"./tarjan":41,lodash:48}],35:[function(require,module,exports){var
 _=require("lodash");module.exports=floydWarshall;var 
DEFAULT_WEIGHT_FUNC=_.constant(1);function 
floydWarshall(g,weightFn,edgeFn){return 
runFloydWarshall(g,weightFn||DEFAULT_WEIGHT_FUNC,edgeFn||function(v){return 
g.outEdges(v)})}function runFloydWarshall(g,weightFn,edgeFn){var 
results={},nodes=g.nodes();nodes.forEach(function(v){results[v]={};results[v][v]={distance:0};nodes.forEach(function(w){if(v!==w){results[v][w]={distance:Number.POSITIVE_INFINITY}}});edgeFn(v).forEach(function(
 edge){var 
w=edge.v===v?edge.w:edge.v,d=weightFn(edge);results[v][w]={distance:d,predecessor:v}})});nodes.forEach(function(k){var
 rowK=results[k];nodes.forEach(function(i){var 
rowI=results[i];nodes.forEach(function(j){var ik=rowI[k];var kj=rowK[j];var 
ij=rowI[j];var 
altDistance=ik.distance+kj.distance;if(altDistance<ij.distance){ij.distance=altDistance;ij.predecessor=kj.predecessor}})})});return
 
results}},{lodash:48}],36:[function(require,module,exports){module.exports={components:require("./components"),dijkstra:require("./dijkstra"),dijkstraAll:require("./dijkstra-all"),findCycles:require("./find-cycles"),floydWarshall:require("./floyd-warshall"),isAcyclic:require("./is-acyclic"),postorder:require("./postorder"),preorder:require("./preorder"),prim:require("./prim"),tarjan:require("./tarjan"),topsort:require("./topsort")}},{"./components":30,"./dijkstra":33,"./dijkstra-all":32,"./find-cycles":34,"./floyd-warshall":35,"./is-acyclic":37,"./postorder":38,"./preorder":39,"./prim":40,"./
 tarjan":41,"./topsort":42}],37:[function(require,module,exports){var 
topsort=require("./topsort");module.exports=isAcyclic;function 
isAcyclic(g){try{topsort(g)}catch(e){if(e instanceof 
topsort.CycleException){return false}throw e}return 
true}},{"./topsort":42}],38:[function(require,module,exports){var 
dfs=require("./dfs");module.exports=postorder;function postorder(g,vs){return 
dfs(g,vs,"post")}},{"./dfs":31}],39:[function(require,module,exports){var 
dfs=require("./dfs");module.exports=preorder;function preorder(g,vs){return 
dfs(g,vs,"pre")}},{"./dfs":31}],40:[function(require,module,exports){var 
_=require("lodash"),Graph=require("../graph"),PriorityQueue=require("../data/priority-queue");module.exports=prim;function
 prim(g,weightFunc){var result=new Graph,parents={},pq=new 
PriorityQueue,v;function updateNeighbors(edge){var 
w=edge.v===v?edge.w:edge.v,pri=pq.priority(w);if(pri!==undefined){var 
edgeWeight=weightFunc(edge);if(edgeWeight<pri){parents[w]=v;pq.decrease(w,edgeWeight)}}}if(
 g.nodeCount()===0){return 
result}_.each(g.nodes(),function(v){pq.add(v,Number.POSITIVE_INFINITY);result.setNode(v)});pq.decrease(g.nodes()[0],0);var
 
init=false;while(pq.size()>0){v=pq.removeMin();if(_.has(parents,v)){result.setEdge(v,parents[v])}else
 if(init){throw new Error("Input graph is not connected: 
"+g)}else{init=true}g.nodeEdges(v).forEach(updateNeighbors)}return 
result}},{"../data/priority-queue":43,"../graph":44,lodash:48}],41:[function(require,module,exports){var
 _=require("lodash");module.exports=tarjan;function tarjan(g){var 
index=0,stack=[],visited={},results=[];function dfs(v){var 
entry=visited[v]={onStack:true,lowlink:index,index:index++};stack.push(v);g.successors(v).forEach(function(w){if(!_.has(visited,w)){dfs(w);entry.lowlink=Math.min(entry.lowlink,visited[w].lowlink)}else
 
if(visited[w].onStack){entry.lowlink=Math.min(entry.lowlink,visited[w].index)}});if(entry.lowlink===entry.index){var
 cmpt=[],w;do{w=stack.pop();visited[w].onStack=false;cmpt.push(w)}while(v!==w
 
);results.push(cmpt)}}g.nodes().forEach(function(v){if(!_.has(visited,v)){dfs(v)}});return
 results}},{lodash:48}],42:[function(require,module,exports){var 
_=require("lodash");module.exports=topsort;topsort.CycleException=CycleException;function
 topsort(g){var visited={},stack={},results=[];function 
visit(node){if(_.has(stack,node)){throw new 
CycleException}if(!_.has(visited,node)){stack[node]=true;visited[node]=true;_.each(g.predecessors(node),visit);delete
 
stack[node];results.push(node)}}_.each(g.sinks(),visit);if(_.size(visited)!==g.nodeCount()){throw
 new CycleException}return results}function 
CycleException(){}},{lodash:48}],43:[function(require,module,exports){var 
_=require("lodash");module.exports=PriorityQueue;function 
PriorityQueue(){this._arr=[];this._keyIndices={}}PriorityQueue.prototype.size=function(){return
 this._arr.length};PriorityQueue.prototype.keys=function(){return 
this._arr.map(function(x){return 
x.key})};PriorityQueue.prototype.has=function(key){return _.has(this
 ._keyIndices,key)};PriorityQueue.prototype.priority=function(key){var 
index=this._keyIndices[key];if(index!==undefined){return 
this._arr[index].priority}};PriorityQueue.prototype.min=function(){if(this.size()===0){throw
 new Error("Queue underflow")}return 
this._arr[0].key};PriorityQueue.prototype.add=function(key,priority){var 
keyIndices=this._keyIndices;key=String(key);if(!_.has(keyIndices,key)){var 
arr=this._arr;var 
index=arr.length;keyIndices[key]=index;arr.push({key:key,priority:priority});this._decrease(index);return
 true}return 
false};PriorityQueue.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var
 min=this._arr.pop();delete this._keyIndices[min.key];this._heapify(0);return 
min.key};PriorityQueue.prototype.decrease=function(key,priority){var 
index=this._keyIndices[key];if(priority>this._arr[index].priority){throw new 
Error("New priority is greater than current priority. "+"Key: "+key+" Old: 
"+this._arr[index].priority+" New: "+priority)}this._arr[index].priori
 
ty=priority;this._decrease(index)};PriorityQueue.prototype._heapify=function(i){var
 arr=this._arr;var 
l=2*i,r=l+1,largest=i;if(l<arr.length){largest=arr[l].priority<arr[largest].priority?l:largest;if(r<arr.length){largest=arr[r].priority<arr[largest].priority?r:largest}if(largest!==i){this._swap(i,largest);this._heapify(largest)}}};PriorityQueue.prototype._decrease=function(index){var
 arr=this._arr;var priority=arr[index].priority;var 
parent;while(index!==0){parent=index>>1;if(arr[parent].priority<priority){break}this._swap(index,parent);index=parent}};PriorityQueue.prototype._swap=function(i,j){var
 arr=this._arr;var keyIndices=this._keyIndices;var origArrI=arr[i];var 
origArrJ=arr[j];arr[i]=origArrJ;arr[j]=origArrI;keyIndices[origArrJ.key]=i;keyIndices[origArrI.key]=j}},{lodash:48}],44:[function(require,module,exports){"use
 strict";var _=require("lodash");module.exports=Graph;var 
DEFAULT_EDGE_NAME="\x00",GRAPH_NODE="\x00",EDGE_KEY_DELIM="";function 
Graph(opts){this._isDirected=_.ha
 
s(opts,"directed")?opts.directed:true;this._isMultigraph=_.has(opts,"multigraph")?opts.multigraph:false;this._isCompound=_.has(opts,"compound")?opts.compound:false;this._label=undefined;this._defaultNodeLabelFn=_.constant(undefined);this._defaultEdgeLabelFn=_.constant(undefined);this._nodes={};if(this._isCompound){this._parent={};this._children={};this._children[GRAPH_NODE]={}}this._in={};this._preds={};this._out={};this._sucs={};this._edgeObjs={};this._edgeLabels={}}Graph.prototype._nodeCount=0;Graph.prototype._edgeCount=0;Graph.prototype.isDirected=function(){return
 this._isDirected};Graph.prototype.isMultigraph=function(){return 
this._isMultigraph};Graph.prototype.isCompound=function(){return 
this._isCompound};Graph.prototype.setGraph=function(label){this._label=label;return
 this};Graph.prototype.graph=function(){return 
this._label};Graph.prototype.setDefaultNodeLabel=function(newDefault){if(!_.isFunction(newDefault)){newDefault=_.constant(newDefault)}this._defaultNodeLabelFn=new
 Default;return this};Graph.prototype.nodeCount=function(){return 
this._nodeCount};Graph.prototype.nodes=function(){return 
_.keys(this._nodes)};Graph.prototype.sources=function(){return 
_.filter(this.nodes(),function(v){return 
_.isEmpty(this._in[v])},this)};Graph.prototype.sinks=function(){return 
_.filter(this.nodes(),function(v){return 
_.isEmpty(this._out[v])},this)};Graph.prototype.setNodes=function(vs,value){var 
args=arguments;_.each(vs,function(v){if(args.length>1){this.setNode(v,value)}else{this.setNode(v)}},this);return
 
this};Graph.prototype.setNode=function(v,value){if(_.has(this._nodes,v)){if(arguments.length>1){this._nodes[v]=value}return
 
this}this._nodes[v]=arguments.length>1?value:this._defaultNodeLabelFn(v);if(this._isCompound){this._parent[v]=GRAPH_NODE;this._children[v]={};this._children[GRAPH_NODE][v]=true}this._in[v]={};this._preds[v]={};this._out[v]={};this._sucs[v]={};++this._nodeCount;return
 this};Graph.prototype.node=function(v){return this._nodes[v]};Graph.protot
 ype.hasNode=function(v){return 
_.has(this._nodes,v)};Graph.prototype.removeNode=function(v){var 
self=this;if(_.has(this._nodes,v)){var 
removeEdge=function(e){self.removeEdge(self._edgeObjs[e])};delete 
this._nodes[v];if(this._isCompound){this._removeFromParentsChildList(v);delete 
this._parent[v];_.each(this.children(v),function(child){this.setParent(child)},this);delete
 this._children[v]}_.each(_.keys(this._in[v]),removeEdge);delete 
this._in[v];delete 
this._preds[v];_.each(_.keys(this._out[v]),removeEdge);delete 
this._out[v];delete this._sucs[v];--this._nodeCount}return 
this};Graph.prototype.setParent=function(v,parent){if(!this._isCompound){throw 
new Error("Cannot set parent in a non-compound 
graph")}if(_.isUndefined(parent)){parent=GRAPH_NODE}else{for(var 
ancestor=parent;!_.isUndefined(ancestor);ancestor=this.parent(ancestor)){if(ancestor===v){throw
 new Error("Setting "+parent+" as parent of "+v+" would create create a 
cycle")}}this.setNode(parent)}this.setNode(v);this._removeFromP
 
arentsChildList(v);this._parent[v]=parent;this._children[parent][v]=true;return 
this};Graph.prototype._removeFromParentsChildList=function(v){delete 
this._children[this._parent[v]][v]};Graph.prototype.parent=function(v){if(this._isCompound){var
 parent=this._parent[v];if(parent!==GRAPH_NODE){return 
parent}}};Graph.prototype.children=function(v){if(_.isUndefined(v)){v=GRAPH_NODE}if(this._isCompound){var
 children=this._children[v];if(children){return _.keys(children)}}else 
if(v===GRAPH_NODE){return this.nodes()}else 
if(this.hasNode(v)){return[]}};Graph.prototype.predecessors=function(v){var 
predsV=this._preds[v];if(predsV){return 
_.keys(predsV)}};Graph.prototype.successors=function(v){var 
sucsV=this._sucs[v];if(sucsV){return 
_.keys(sucsV)}};Graph.prototype.neighbors=function(v){var 
preds=this.predecessors(v);if(preds){return 
_.union(preds,this.successors(v))}};Graph.prototype.setDefaultEdgeLabel=function(newDefault){if(!_.isFunction(newDefault)){newDefault=_.constant(newDefault)}this._
 defaultEdgeLabelFn=newDefault;return 
this};Graph.prototype.edgeCount=function(){return 
this._edgeCount};Graph.prototype.edges=function(){return 
_.values(this._edgeObjs)};Graph.prototype.setPath=function(vs,value){var 
self=this,args=arguments;_.reduce(vs,function(v,w){if(args.length>1){self.setEdge(v,w,value)}else{self.setEdge(v,w)}return
 w});return this};Graph.prototype.setEdge=function(v,w,value,name){var 
valueSpecified=arguments.length>2;if(_.isPlainObject(arguments[0])){v=arguments[0].v;w=arguments[0].w;name=arguments[0].name;if(arguments.length===2){value=arguments[1];valueSpecified=true}}var
 
e=edgeArgsToId(this._isDirected,v,w,name);if(_.has(this._edgeLabels,e)){if(valueSpecified){this._edgeLabels[e]=value}return
 this}if(!_.isUndefined(name)&&!this._isMultigraph){throw new Error("Cannot set 
a named edge when isMultigraph = 
false")}this.setNode(v);this.setNode(w);this._edgeLabels[e]=valueSpecified?value:this._defaultEdgeLabelFn(v,w,name);var
 edgeObj=edgeArgsToObj(this._isDirecte
 
d,v,w,name);v=edgeObj.v;w=edgeObj.w;Object.freeze(edgeObj);this._edgeObjs[e]=edgeObj;incrementOrInitEntry(this._preds[w],v);incrementOrInitEntry(this._sucs[v],w);this._in[w][e]=edgeObj;this._out[v][e]=edgeObj;this._edgeCount++;return
 this};Graph.prototype.edge=function(v,w,name){var 
e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name);return
 this._edgeLabels[e]};Graph.prototype.hasEdge=function(v,w,name){var 
e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name);return
 _.has(this._edgeLabels,e)};Graph.prototype.removeEdge=function(v,w,name){var 
e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name),edge=this._edgeObjs[e];if(edge){v=edge.v;w=edge.w;delete
 this._edgeLabels[e];delete 
this._edgeObjs[e];decrementOrRemoveEntry(this._preds[w],v);decrementOrRemoveEntry(this._sucs[v],w);delete
 this._in[w][e];delete this._out[v][e];this._ed
 geCount--}return this};Graph.prototype.inEdges=function(v,u){var 
inV=this._in[v];if(inV){var edges=_.values(inV);if(!u){return edges}return 
_.filter(edges,function(edge){return 
edge.v===u})}};Graph.prototype.outEdges=function(v,w){var 
outV=this._out[v];if(outV){var edges=_.values(outV);if(!w){return edges}return 
_.filter(edges,function(edge){return 
edge.w===w})}};Graph.prototype.nodeEdges=function(v,w){var 
inEdges=this.inEdges(v,w);if(inEdges){return 
inEdges.concat(this.outEdges(v,w))}};function 
incrementOrInitEntry(map,k){if(_.has(map,k)){map[k]++}else{map[k]=1}}function 
decrementOrRemoveEntry(map,k){if(!--map[k]){delete map[k]}}function 
edgeArgsToId(isDirected,v,w,name){if(!isDirected&&v>w){var 
tmp=v;v=w;w=tmp}return 
v+EDGE_KEY_DELIM+w+EDGE_KEY_DELIM+(_.isUndefined(name)?DEFAULT_EDGE_NAME:name)}function
 edgeArgsToObj(isDirected,v,w,name){if(!isDirected&&v>w){var 
tmp=v;v=w;w=tmp}var edgeObj={v:v,w:w};if(name){edgeObj.name=name}return 
edgeObj}function edgeObjToId(isDirected,edgeObj)
 {return 
edgeArgsToId(isDirected,edgeObj.v,edgeObj.w,edgeObj.name)}},{lodash:48}],45:[function(require,module,exports){module.exports={Graph:require("./graph"),version:require("./version")}},{"./graph":44,"./version":47}],46:[function(require,module,exports){var
 
_=require("lodash"),Graph=require("./graph");module.exports={write:write,read:read};function
 write(g){var 
json={options:{directed:g.isDirected(),multigraph:g.isMultigraph(),compound:g.isCompound()},nodes:writeNodes(g),edges:writeEdges(g)};if(!_.isUndefined(g.graph())){json.value=_.clone(g.graph())}return
 json}function writeNodes(g){return _.map(g.nodes(),function(v){var 
nodeValue=g.node(v),parent=g.parent(v),node={v:v};if(!_.isUndefined(nodeValue)){node.value=nodeValue}if(!_.isUndefined(parent)){node.parent=parent}return
 node})}function writeEdges(g){return _.map(g.edges(),function(e){var 
edgeValue=g.edge(e),edge={v:e.v,w:e.w};if(!_.isUndefined(e.name)){edge.name=e.name}if(!_.isUndefined(edgeValue)){edge.value=edgeValue}retur
 n edge})}function read(json){var g=new 
Graph(json.options).setGraph(json.value);_.each(json.nodes,function(entry){g.setNode(entry.v,entry.value);if(entry.parent){g.setParent(entry.v,entry.parent)}});_.each(json.edges,function(entry){g.setEdge({v:entry.v,w:entry.w,name:entry.name},entry.value)});return
 
g}},{"./graph":44,lodash:48}],47:[function(require,module,exports){module.exports="0.8.0"},{}],48:[function(require,module,exports){(function(global){(function(){var
 undefined;var arrayPool=[],objectPool=[];var idCounter=0;var keyPrefix=+new 
Date+"";var largeArraySize=75;var maxPoolSize=40;var whitespace="   \f 
"+"\n\r\u2028\u2029"+" ᠎              ";var 
reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' 
\+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var 
reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var reFlags=/\w*$/;var 
reFuncName=/^\s*function[ \n\r\t]+\w/;var reInterpolate=/<%=([\s\S]+?)%>/g;var 
reLeadingSpaces
 AndZeros=RegExp("^["+whitespace+"]*0+(?=.$)");var reNoMatch=/($^)/;var 
reThis=/\bthis\b/;var reUnescapedString=/['\n\r\t\u2028\u2029\\]/g;var 
contextProps=["Array","Boolean","Date","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"];var
 templateCounter=0;var argsClass="[object Arguments]",arrayClass="[object 
Array]",boolClass="[object Boolean]",dateClass="[object 
Date]",funcClass="[object Function]",numberClass="[object 
Number]",objectClass="[object Object]",regexpClass="[object 
RegExp]",stringClass="[object String]";var 
cloneableClasses={};cloneableClasses[funcClass]=false;cloneableClasses[argsClass]=cloneableClasses[arrayClass]=cloneableClasses[boolClass]=cloneableClasses[dateClass]=cloneableClasses[numberClass]=cloneableClasses[objectClass]=cloneableClasses[regexpClass]=cloneableClasses[stringClass]=true;var
 debounceOptions={leading:false,maxWait:0,trailing:false};var 
descriptor={configurable:false,enu
 merable:false,value:null,writable:false};var 
objectTypes={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false};var
 stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","  
":"t","\u2028":"u2028","\u2029":"u2029"};var root=objectTypes[typeof 
window]&&window||this;var freeExports=objectTypes[typeof 
exports]&&exports&&!exports.nodeType&&exports;var freeModule=objectTypes[typeof 
module]&&module&&!module.nodeType&&module;var 
moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports;var 
freeGlobal=objectTypes[typeof 
global]&&global;if(freeGlobal&&(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal)){root=freeGlobal}function
 baseIndexOf(array,value,fromIndex){var 
index=(fromIndex||0)-1,length=array?array.length:0;while(++index<length){if(array[index]===value){return
 index}}return-1}function cacheIndexOf(cache,value){var type=typeof 
value;cache=cache.cache;if(type=="boolean"||value==null){return 
cache[value]?0:-1}if(type!="number"&&ty
 pe!="string"){type="object"}var 
key=type=="number"?value:keyPrefix+value;cache=(cache=cache[type])&&cache[key];return
 type=="object"?cache&&baseIndexOf(cache,value)>-1?0:-1:cache?0:-1
+}function cachePush(value){var cache=this.cache,type=typeof 
value;if(type=="boolean"||value==null){cache[value]=true}else{if(type!="number"&&type!="string"){type="object"}var
 
key=type=="number"?value:keyPrefix+value,typeCache=cache[type]||(cache[type]={});if(type=="object"){(typeCache[key]||(typeCache[key]=[])).push(value)}else{typeCache[key]=true}}}function
 charAtCallback(value){return value.charCodeAt(0)}function 
compareAscending(a,b){var 
ac=a.criteria,bc=b.criteria,index=-1,length=ac.length;while(++index<length){var 
value=ac[index],other=bc[index];if(value!==other){if(value>other||typeof 
value=="undefined"){return 1}if(value<other||typeof 
other=="undefined"){return-1}}}return a.index-b.index}function 
createCache(array){var 
index=-1,length=array.length,first=array[0],mid=array[length/2|0],last=array[length-1];if(first&&typeof
 first=="object"&&mid&&typeof mid=="object"&&last&&typeof 
last=="object"){return false}var 
cache=getObject();cache["false"]=cache["null"]=cache["true"]=cache[
 "undefined"]=false;var 
result=getObject();result.array=array;result.cache=cache;result.push=cachePush;while(++index<length){result.push(array[index])}return
 result}function 
escapeStringChar(match){return"\\"+stringEscapes[match]}function 
getArray(){return arrayPool.pop()||[]}function getObject(){return 
objectPool.pop()||{array:null,cache:null,criteria:null,"false":false,index:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,value:null}}function
 
releaseArray(array){array.length=0;if(arrayPool.length<maxPoolSize){arrayPool.push(array)}}function
 releaseObject(object){var 
cache=object.cache;if(cache){releaseObject(cache)}object.array=object.cache=object.criteria=object.object=object.number=object.string=object.value=null;if(objectPool.length<maxPoolSize){objectPool.push(object)}}function
 slice(array,start,end){start||(start=0);if(typeof 
end=="undefined"){end=array?array.length:0}var 
index=-1,length=end-start||0,result=Array(length<0?0:length);whi
 le(++index<length){result[index]=array[start+index]}return result}function 
runInContext(context){context=context?_.defaults(root.Object(),context,_.pick(root,contextProps)):root;var
 
Array=context.Array,Boolean=context.Boolean,Date=context.Date,Function=context.Function,Math=context.Math,Number=context.Number,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError;var
 arrayRef=[];var objectProto=Object.prototype;var oldDash=context._;var 
toString=objectProto.toString;var 
reNative=RegExp("^"+String(toString).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|
 for [^\]]+/g,".*?")+"$");var 
ceil=Math.ceil,clearTimeout=context.clearTimeout,floor=Math.floor,fnToString=Function.prototype.toString,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,hasOwnProperty=objectProto.hasOwnProperty,push=arrayRef.push,setTimeout=context.setTimeout,splice=arrayRef.splice,unshift=arrayRef.unshift;var
 defineProperty=function(){try{var o
 
={},func=isNative(func=Object.defineProperty)&&func,result=func(o,o,o)&&func}catch(e){}return
 result}();var 
nativeCreate=isNative(nativeCreate=Object.create)&&nativeCreate,nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeIsFinite=context.isFinite,nativeIsNaN=context.isNaN,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,nativeParseInt=context.parseInt,nativeRandom=Math.random;var
 
ctorByClass={};ctorByClass[arrayClass]=Array;ctorByClass[boolClass]=Boolean;ctorByClass[dateClass]=Date;ctorByClass[funcClass]=Function;ctorByClass[objectClass]=Object;ctorByClass[numberClass]=Number;ctorByClass[regexpClass]=RegExp;ctorByClass[stringClass]=String;function
 lodash(value){return value&&typeof 
value=="object"&&!isArray(value)&&hasOwnProperty.call(value,"__wrapped__")?value:new
 lodashWrapper(value)}function 
lodashWrapper(value,chainAll){this.__chain__=!!chainAll;this.__wrapped__=value}lodashWrapper.prototype=lodash.prototype;va
 r 
support=lodash.support={};support.funcDecomp=!isNative(context.WinRTError)&&reThis.test(runInContext);support.funcNames=typeof
 
Function.name=="string";lodash.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:reInterpolate,variable:"",imports:{_:lodash}};function
 baseBind(bindData){var 
func=bindData[0],partialArgs=bindData[2],thisArg=bindData[4];function 
bound(){if(partialArgs){var 
args=slice(partialArgs);push.apply(args,arguments)}if(this instanceof 
bound){var 
thisBinding=baseCreate(func.prototype),result=func.apply(thisBinding,args||arguments);return
 isObject(result)?result:thisBinding}return 
func.apply(thisArg,args||arguments)}setBindData(bound,bindData);return 
bound}function baseClone(value,isDeep,callback,stackA,stackB){if(callback){var 
result=callback(value);if(typeof result!="undefined"){return result}}var 
isObj=isObject(value);if(isObj){var 
className=toString.call(value);if(!cloneableClasses[className]){return 
value}var ctor=ctorByClass[clas
 sName];switch(className){case boolClass:case dateClass:return new 
ctor(+value);case numberClass:case stringClass:return new ctor(value);case 
regexpClass:result=ctor(value.source,reFlags.exec(value));result.lastIndex=value.lastIndex;return
 result}}else{return value}var isArr=isArray(value);if(isDeep){var 
initedStack=!stackA;stackA||(stackA=getArray());stackB||(stackB=getArray());var 
length=stackA.length;while(length--){if(stackA[length]==value){return 
stackB[length]}}result=isArr?ctor(value.length):{}}else{result=isArr?slice(value):assign({},value)}if(isArr){if(hasOwnProperty.call(value,"index")){result.index=value.index}if(hasOwnProperty.call(value,"input")){result.input=value.input}}if(!isDeep){return
 
result}stackA.push(value);stackB.push(result);(isArr?forEach:forOwn)(value,function(objValue,key){result[key]=baseClone(objValue,isDeep,callback,stackA,stackB)});if(initedStack){releaseArray(stackA);releaseArray(stackB)}return
 result}function baseCreate(prototype,properties){return is
 
Object(prototype)?nativeCreate(prototype):{}}if(!nativeCreate){baseCreate=function(){function
 Object(){}return 
function(prototype){if(isObject(prototype)){Object.prototype=prototype;var 
result=new Object;Object.prototype=null}return 
result||context.Object()}}()}function 
baseCreateCallback(func,thisArg,argCount){if(typeof func!="function"){return 
identity}if(typeof thisArg=="undefined"||!("prototype"in func)){return func}var 
bindData=func.__bindData__;if(typeof 
bindData=="undefined"){if(support.funcNames){bindData=!func.name}bindData=bindData||!support.funcDecomp;if(!bindData){var
 
source=fnToString.call(func);if(!support.funcNames){bindData=!reFuncName.test(source)}if(!bindData){bindData=reThis.test(source);setBindData(func,bindData)}}}if(bindData===false||bindData!==true&&bindData[1]&1){return
 func}switch(argCount){case 1:return function(value){return 
func.call(thisArg,value)};case 2:return function(a,b){return 
func.call(thisArg,a,b)};case 3:return function(value,index,collection){r
 eturn func.call(thisArg,value,index,collection)};case 4:return 
function(accumulator,value,index,collection){return 
func.call(thisArg,accumulator,value,index,collection)}}return 
bind(func,thisArg)}function baseCreateWrapper(bindData){var 
func=bindData[0],bitmask=bindData[1],partialArgs=bindData[2],partialRightArgs=bindData[3],thisArg=bindData[4],arity=bindData[5];var
 
isBind=bitmask&1,isBindKey=bitmask&2,isCurry=bitmask&4,isCurryBound=bitmask&8,key=func;function
 bound(){var thisBinding=isBind?thisArg:this;if(partialArgs){var 
args=slice(partialArgs);push.apply(args,arguments)}if(partialRightArgs||isCurry){args||(args=slice(arguments));if(partialRightArgs){push.apply(args,partialRightArgs)}if(isCurry&&args.length<arity){bitmask|=16&~32;return
 
baseCreateWrapper([func,isCurryBound?bitmask:bitmask&~3,args,null,thisArg,arity])}}args||(args=arguments);if(isBindKey){func=thisBinding[key]}if(this
 instanceof bound){thisBinding=baseCreate(func.prototype);var 
result=func.apply(thisBinding,args);r
 eturn isObject(result)?result:thisBinding}return 
func.apply(thisBinding,args)}setBindData(bound,bindData);return bound}function 
baseDifference(array,values){var 
index=-1,indexOf=getIndexOf(),length=array?array.length:0,isLarge=length>=largeArraySize&&indexOf===baseIndexOf,result=[];if(isLarge){var
 
cache=createCache(values);if(cache){indexOf=cacheIndexOf;values=cache}else{isLarge=false}}while(++index<length){var
 
value=array[index];if(indexOf(values,value)<0){result.push(value)}}if(isLarge){releaseObject(values)}return
 result}function baseFlatten(array,isShallow,isStrict,fromIndex){var 
index=(fromIndex||0)-1,length=array?array.length:0,result=[];while(++index<length){var
 value=array[index];if(value&&typeof value=="object"&&typeof 
value.length=="number"&&(isArray(value)||isArguments(value))){if(!isShallow){value=baseFlatten(value,isShallow,isStrict)}var
 
valIndex=-1,valLength=value.length,resIndex=result.length;result.length+=valLength;while(++valIndex<valLength){result[resIndex++]=valu
 e[valIndex]}}else if(!isStrict){result.push(value)}}return result}function 
baseIsEqual(a,b,callback,isWhere,stackA,stackB){if(callback){var 
result=callback(a,b);if(typeof 
result!="undefined"){return!!result}}if(a===b){return a!==0||1/a==1/b}var 
type=typeof a,otherType=typeof 
b;if(a===a&&!(a&&objectTypes[type])&&!(b&&objectTypes[otherType])){return 
false}if(a==null||b==null){return a===b}var 
className=toString.call(a),otherClass=toString.call(b);if(className==argsClass){className=objectClass}if(otherClass==argsClass){otherClass=objectClass}if(className!=otherClass){return
 false}switch(className){case boolClass:case dateClass:return+a==+b;case 
numberClass:return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case regexpClass:case 
stringClass:return a==String(b)}var isArr=className==arrayClass;if(!isArr){var 
aWrapped=hasOwnProperty.call(a,"__wrapped__"),bWrapped=hasOwnProperty.call(b,"__wrapped__");if(aWrapped||bWrapped){return
 baseIsEqual(aWrapped?a.__wrapped__:a,bWrapped?b.__wrapped__:b,callback,is
 Where,stackA,stackB)}if(className!=objectClass){return false}var 
ctorA=a.constructor,ctorB=b.constructor;if(ctorA!=ctorB&&!(isFunction(ctorA)&&ctorA
 instanceof ctorA&&isFunction(ctorB)&&ctorB instanceof ctorB)&&("constructor"in 
a&&"constructor"in b)){return false}}var 
initedStack=!stackA;stackA||(stackA=getArray());stackB||(stackB=getArray());var 
length=stackA.length;while(length--){if(stackA[length]==a){return 
stackB[length]==b}}var 
size=0;result=true;stackA.push(a);stackB.push(b);if(isArr){length=a.length;size=b.length;result=size==length;if(result||isWhere){while(size--){var
 
index=length,value=b[size];if(isWhere){while(index--){if(result=baseIsEqual(a[index],value,callback,isWhere,stackA,stackB)){break}}}else
 
if(!(result=baseIsEqual(a[size],value,callback,isWhere,stackA,stackB))){break}}}}else{forIn(b,function(value,key,b){if(hasOwnProperty.call(b,key)){size++;return
 
result=hasOwnProperty.call(a,key)&&baseIsEqual(a[key],value,callback,isWhere,stackA,stackB)}});if(result&&!isWhere
 ){forIn(a,function(value,key,a){if(hasOwnProperty.call(a,key)){return 
result=--size>-1}})}}stackA.pop();stackB.pop();if(initedStack){releaseArray(stackA);releaseArray(stackB)}return
 result}function 
baseMerge(object,source,callback,stackA,stackB){(isArray(source)?forEach:forOwn)(source,function(source,key){var
 
found,isArr,result=source,value=object[key];if(source&&((isArr=isArray(source))||isPlainObject(source))){var
 
stackLength=stackA.length;while(stackLength--){if(found=stackA[stackLength]==source){value=stackB[stackLength];break}}if(!found){var
 isShallow;if(callback){result=callback(value,source);if(isShallow=typeof 
result!="undefined"){value=result}}if(!isShallow){value=isArr?isArray(value)?value:[]:isPlainObject(value)?value:{}}stackA.push(source);stackB.push(value);if(!isShallow){baseMerge(value,source,callback,stackA,stackB)}}}else{if(callback){result=callback(value,source);if(typeof
 result=="undefined"){result=source}}if(typeof 
result!="undefined"){value=result}}object[key]=v
 alue})}function baseRandom(min,max){return 
min+floor(nativeRandom()*(max-min+1))}function 
baseUniq(array,isSorted,callback){var 
index=-1,indexOf=getIndexOf(),length=array?array.length:0,result=[];var 
isLarge=!isSorted&&length>=largeArraySize&&indexOf===baseIndexOf,seen=callback||isLarge?getArray():result;if(isLarge){var
 
cache=createCache(seen);indexOf=cacheIndexOf;seen=cache}while(++index<length){var
 
value=array[index],computed=callback?callback(value,index,array):value;if(isSorted?!index||seen[seen.length-1]!==computed:indexOf(seen,computed)<0){if(callback||isLarge){seen.push(computed)}result.push(value)}}if(isLarge){releaseArray(seen.array);releaseObject(seen)}else
 if(callback){releaseArray(seen)}return result}function 
createAggregator(setter){return function(collection,callback,thisArg){var 
result={};callback=lodash.createCallback(callback,thisArg,3);var 
index=-1,length=collection?collection.length:0;if(typeof 
length=="number"){while(++index<length){var value=collection[index];se
 
tter(result,value,callback(value,index,collection),collection)}}else{forOwn(collection,function(value,key,collection){setter(result,value,callback(value,key,collection),collection)})}return
 result}}function 
createWrapper(func,bitmask,partialArgs,partialRightArgs,thisArg,arity){var 
isBind=bitmask&1,isBindKey=bitmask&2,isCurry=bitmask&4,isCurryBound=bitmask&8,isPartial=bitmask&16,isPartialRight=bitmask&32;if(!isBindKey&&!isFunction(func)){throw
 new 
TypeError}if(isPartial&&!partialArgs.length){bitmask&=~16;isPartial=partialArgs=false}if(isPartialRight&&!partialRightArgs.length){bitmask&=~32;isPartialRight=partialRightArgs=false}var
 
bindData=func&&func.__bindData__;if(bindData&&bindData!==true){bindData=slice(bindData);if(bindData[2]){bindData[2]=slice(bindData[2])}if(bindData[3]){bindData[3]=slice(bindData[3])}if(isBind&&!(bindData[1]&1)){bindData[4]=thisArg}if(!isBind&&bindData[1]&1){bitmask|=8}if(isCurry&&!(bindData[1]&4)){bindData[5]=arity}if(isPartial){push.apply(bindData[2]||(bind
 
Data[2]=[]),partialArgs)}if(isPartialRight){unshift.apply(bindData[3]||(bindData[3]=[]),partialRightArgs)}bindData[1]|=bitmask;return
 createWrapper.apply(null,bindData)}var 
creater=bitmask==1||bitmask===17?baseBind:baseCreateWrapper;return 
creater([func,bitmask,partialArgs,partialRightArgs,thisArg,arity])}function 
escapeHtmlChar(match){return htmlEscapes[match]}function getIndexOf(){var 
result=(result=lodash.indexOf)===indexOf?baseIndexOf:result;return 
result}function isNative(value){return typeof 
value=="function"&&reNative.test(value)}var 
setBindData=!defineProperty?noop:function(func,value){descriptor.value=value;defineProperty(func,"__bindData__",descriptor)};function
 shimIsPlainObject(value){var 
ctor,result;if(!(value&&toString.call(value)==objectClass)||(ctor=value.constructor,isFunction(ctor)&&!(ctor
 instanceof ctor))){return 
false}forIn(value,function(value,key){result=key});return typeof 
result=="undefined"||hasOwnProperty.call(value,result)}function 
unescapeHtmlChar(match)
 {return htmlUnescapes[match]}function isArguments(value){return value&&typeof 
value=="object"&&typeof 
value.length=="number"&&toString.call(value)==argsClass||false}var 
isArray=nativeIsArray||function(value){return value&&typeof 
value=="object"&&typeof 
value.length=="number"&&toString.call(value)==arrayClass||false};var 
shimKeys=function(object){var 
index,iterable=object,result=[];if(!iterable)return 
result;if(!objectTypes[typeof object])return result;for(index in 
iterable){if(hasOwnProperty.call(iterable,index)){result.push(index)}}return 
result};var 
keys=!nativeKeys?shimKeys:function(object){if(!isObject(object)){return[]}return
 nativeKeys(object)};var 
htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var 
htmlUnescapes=invert(htmlEscapes);var 
reEscapedHtml=RegExp("("+keys(htmlUnescapes).join("|")+")","g"),reUnescapedHtml=RegExp("["+keys(htmlEscapes).join("")+"]","g");var
 assign=function(object,source,guard){var 
index,iterable=object,result=iterable;if(!itera
 ble)return result;var args=arguments,argsIndex=0,argsLength=typeof 
guard=="number"?2:args.length;if(argsLength>3&&typeof 
args[argsLength-2]=="function"){var 
callback=baseCreateCallback(args[--argsLength-1],args[argsLength--],2)}else 
if(argsLength>2&&typeof 
args[argsLength-1]=="function"){callback=args[--argsLength]}while(++argsIndex<argsLength){iterable=args[argsIndex];if(iterable&&objectTypes[typeof
 iterable]){var ownIndex=-1,ownProps=objectTypes[typeof 
iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];result[index]=callback?callback(result[index],iterable[index]):iterable[index]}}}return
 result};function clone(value,isDeep,callback,thisArg){if(typeof 
isDeep!="boolean"&&isDeep!=null){thisArg=callback;callback=isDeep;isDeep=false}return
 baseClone(value,isDeep,typeof 
callback=="function"&&baseCreateCallback(callback,thisArg,1))}function 
cloneDeep(value,callback,thisArg){return baseClone(value,true,typeof 
callback=="function"
 &&baseCreateCallback(callback,thisArg,1))}function 
create(prototype,properties){var result=baseCreate(prototype);return 
properties?assign(result,properties):result}var 
defaults=function(object,source,guard){var 
index,iterable=object,result=iterable;if(!iterable)return result;var 
args=arguments,argsIndex=0,argsLength=typeof 
guard=="number"?2:args.length;while(++argsIndex<argsLength){iterable=args[argsIndex];if(iterable&&objectTypes[typeof
 iterable]){var ownIndex=-1,ownProps=objectTypes[typeof 
iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];if(typeof
 result[index]=="undefined")result[index]=iterable[index]}}}return 
result};function findKey(object,callback,thisArg){var 
result;callback=lodash.createCallback(callback,thisArg,3);forOwn(object,function(value,key,object){if(callback(value,key,object)){result=key;return
 false}});return result}function findLastKey(object,callback,thisArg){var 
result;callback=lodash.createCallback(c
 
allback,thisArg,3);forOwnRight(object,function(value,key,object){if(callback(value,key,object)){result=key;return
 false}});return result}var forIn=function(collection,callback,thisArg){var 
index,iterable=collection,result=iterable;if(!iterable)return 
result;if(!objectTypes[typeof iterable])return result;callback=callback&&typeof 
thisArg=="undefined"?callback:baseCreateCallback(callback,thisArg,3);for(index 
in iterable){if(callback(iterable[index],index,collection)===false)return 
result}return result};function forInRight(object,callback,thisArg){var 
pairs=[];forIn(object,function(value,key){pairs.push(key,value)});var 
length=pairs.length;callback=baseCreateCallback(callback,thisArg,3);while(length--){if(callback(pairs[length--],pairs[length],object)===false){break}}return
 object}var forOwn=function(collection,callback,thisArg){var 
index,iterable=collection,result=iterable;if(!iterable)return 
result;if(!objectTypes[typeof iterable])return result;callback=callback&&typeof 
thisArg=="und
 efined"?callback:baseCreateCallback(callback,thisArg,3);var 
ownIndex=-1,ownProps=objectTypes[typeof 
iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];if(callback(iterable[index],index,collection)===false)return
 result}return result};function forOwnRight(object,callback,thisArg){var 
props=keys(object),length=props.length;callback=baseCreateCallback(callback,thisArg,3);while(length--){var
 key=props[length];if(callback(object[key],key,object)===false){break}}return 
object}function functions(object){var 
result=[];forIn(object,function(value,key){if(isFunction(value)){result.push(key)}});return
 result.sort()}function has(object,key){return 
object?hasOwnProperty.call(object,key):false}function invert(object){var 
index=-1,props=keys(object),length=props.length,result={};while(++index<length){var
 key=props[index];result[object[key]]=key}return result}function 
isBoolean(value){return value===true||value===false||value&&typeof value=
 ="object"&&toString.call(value)==boolClass||false}function 
isDate(value){return value&&typeof 
value=="object"&&toString.call(value)==dateClass||false}function 
isElement(value){return value&&value.nodeType===1||false}function 
isEmpty(value){var result=true;if(!value){return result}var 
className=toString.call(value),length=value.length;if(className==arrayClass||className==stringClass||className==argsClass||className==objectClass&&typeof
 
length=="number"&&isFunction(value.splice)){return!length}forOwn(value,function(){return
 result=false});return result}function isEqual(a,b,callback,thisArg){return 
baseIsEqual(a,b,typeof 
callback=="function"&&baseCreateCallback(callback,thisArg,2))}function 
isFinite(value){return 
nativeIsFinite(value)&&!nativeIsNaN(parseFloat(value))}function 
isFunction(value){return typeof value=="function"}function 
isObject(value){return!!(value&&objectTypes[typeof value])}function 
isNaN(value){return isNumber(value)&&value!=+value}function 
isNull(value){return value
 ===null}function isNumber(value){return typeof value=="number"||value&&typeof 
value=="object"&&toString.call(value)==numberClass||false}var 
isPlainObject=!getPrototypeOf?shimIsPlainObject:function(value){if(!(value&&toString.call(value)==objectClass)){return
 false}var 
valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return
 
objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)};function
 isRegExp(value){return value&&typeof 
value=="object"&&toString.call(value)==regexpClass||false}function 
isString(value){return typeof value=="string"||value&&typeof 
value=="object"&&toString.call(value)==stringClass||false}function 
isUndefined(value){return typeof value=="undefined"}function 
mapValues(object,callback,thisArg){var 
result={};callback=lodash.createCallback(callback,thisArg,3);forOwn(object,function(value,key,object){result[key]=callback(value,key,object)});return
 result}function merge(object){var a
 rgs=arguments,length=2;if(!isObject(object)){return object}if(typeof 
args[2]!="number"){length=args.length}if(length>3&&typeof 
args[length-2]=="function"){var 
callback=baseCreateCallback(args[--length-1],args[length--],2)}else 
if(length>2&&typeof args[length-1]=="function"){callback=args[--length]}var 
sources=slice(arguments,1,length),index=-1,stackA=getArray(),stackB=getArray();while(++index<length){baseMerge(object,sources[index],callback,stackA,stackB)}releaseArray(stackA);releaseArray(stackB);return
 object}function omit(object,callback,thisArg){var result={};if(typeof 
callback!="function"){var 
props=[];forIn(object,function(value,key){props.push(key)});props=baseDifference(props,baseFlatten(arguments,true,false,1));var
 index=-1,length=props.length;while(++index<length){var 
key=props[index];result[key]=object[key]}}else{callback=lodash.createCallback(callback,thisArg,3);forIn(object,function(value,key,object){if(!callback(value,key,object)){result[key]=value}})}return
 result}func
 tion pairs(object){var 
index=-1,props=keys(object),length=props.length,result=Array(length);while(++index<length){var
 key=props[index];result[index]=[key,object[key]]}return result}function 
pick(object,callback,thisArg){var result={};if(typeof callback!="function

<TRUNCATED>

Reply via email to