      };        var zoom = function (d) {          if (zoomedLink !== d) {              x = d0.scale.linear().range([00 * k, (r - 00) * k]);              y = d0.scale.linear().range([00 * k, (r - 00) * k]);              x.domain([d.$refX, d.$refX + pSize]);              y.domain([d.$refY, d.$refY + pSize]);              k = k * (r - 00) / pSize;              zoomedLink = d;              that.update(0000);          } else {              k = (k * pSize) / (r - 00);              x = d0.scale.linear().range([0, r * k]);              y = d0.scale.linear().range([0, r * k]);              x.domain([0, r]);              y.domain([0, r]);              zoomedLink = null;              that.update(0000);          }          d0.event.stopPropagation();      };        var drawTransition = function (d) {          if (d.nodes) {              var newX = d0.scale.linear().range([x(d.$refX), x(d.$refX + pSize)]);              var newY = d0.scale.linear().range([y(d.$refY), y(d.$refY + pSize)]);              newX.domain([0, r]);              newY.domain([0, r + 00]);              d.update = ruleVisual(d.nodes[0], d.links, newX, newY, d.id, d0.select(this), false, base).update;          }      };        var updateTransition = function (d) {          if (d.nodes) {              var newX = d0.scale.linear().range([x(d.$refX), x(d.$refX + pSize)]);              var newY = d0.scale.linear().range([y(d.$refY), y(d.$refY + pSize)]);              newX.domain([0, r]);              newY.domain([0, r + 00]);              d.update(tTime, newX, newY);          }      };        path.enter()          .append('svg:path')          .attr('class', 'link')          .attr('id', function (d) { return d.source.