Skip to content

Instantly share code, notes, and snippets.

@pozitron57
Forked from robschmuecker/README.md
Last active September 14, 2015 19:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pozitron57/37d0cdabf4b8a3bdde92 to your computer and use it in GitHub Desktop.
Save pozitron57/37d0cdabf4b8a3bdde92 to your computer and use it in GitHub Desktop.
Rurikovichi family tree
!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null===n?0/0:+n}function e(n){return!isNaN(n)}function r(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=10;return t}function o(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function a(){this._=Object.create(null)}function c(n){return(n+="")===la||n[0]===sa?sa+n:n}function l(n){return(n+="")[0]===sa?n.slice(1):n}function s(n){return c(n)in this._}function f(n){return(n=c(n))in this._&&delete this._[n]}function h(){var n=[];for(var t in this._)n.push(l(t));return n}function g(){var n=0;for(var t in this._)++n;return n}function p(){for(var n in this._)return!1;return!0}function v(){this._=Object.create(null)}function d(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function m(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=fa.length;r>e;++e){var u=fa[e]+t;if(u in n)return u}}function y(){}function x(){}function M(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new a;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function _(){Bo.event.preventDefault()}function b(){for(var n,t=Bo.event;n=t.sourceEvent;)t=n;return t}function w(n){for(var t=new x,e=0,r=arguments.length;++e<r;)t[arguments[e]]=M(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=Bo.event;u.target=n,Bo.event=u,t[u.type].apply(e,r)}finally{Bo.event=i}}},t}function S(n){return ga(n,ya),n}function k(n){return"function"==typeof n?n:function(){return pa(n,this)}}function E(n){return"function"==typeof n?n:function(){return va(n,this)}}function A(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=Bo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function C(n){return n.trim().replace(/\s+/g," ")}function N(n){return new RegExp("(?:^|\\s+)"+Bo.requote(n)+"(?:\\s+|$)","g")}function z(n){return(n+"").trim().split(/^|\s+/)}function L(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=z(n).map(T);var u=n.length;return"function"==typeof t?r:e}function T(n){var t=N(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",C(u+" "+n))):e.setAttribute("class",C(u.replace(t," ")))}}function q(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function R(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function D(n){return"function"==typeof n?n:(n=Bo.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function P(n){return{__data__:n}}function U(n){return function(){return ma(this,n)}}function j(t){return arguments.length||(t=n),function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}}function F(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function H(n){return ga(n,Ma),n}function O(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function Y(){var n=this.__transition__;n&&++n.active}function I(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,Jo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+Bo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=Z;a>0&&(n=n.slice(0,a));var l=ba.get(n);return l&&(n=l,c=V),a?t?u:r:t?y:i}function Z(n,t){return function(e){var r=Bo.event;Bo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Bo.event=r}}}function V(n,t){var e=Z(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function X(){var n=".dragsuppress-"+ ++Sa,t="click"+n,e=Bo.select(Qo).on("touchmove"+n,_).on("dragstart"+n,_).on("selectstart"+n,_);if(wa){var r=Ko.style,u=r[wa];r[wa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),wa&&(r[wa]=u),i&&(e.on(t,function(){_(),o()},!0),setTimeout(o,0))}}function $(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>ka&&(Qo.scrollX||Qo.scrollY)){e=Bo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();ka=!(u.f||u.e),e.remove()}return ka?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function B(){return Bo.event.changedTouches[0].identifier}function W(){return Bo.event.target}function J(){return Qo}function G(n){return n>0?1:0>n?-1:0}function K(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function Q(n){return n>1?0:-1>n?Ea:Math.acos(n)}function nt(n){return n>1?Ca:-1>n?-Ca:Math.asin(n)}function tt(n){return((n=Math.exp(n))-1/n)/2}function et(n){return((n=Math.exp(n))+1/n)/2}function rt(n){return((n=Math.exp(2*n))-1)/(n+1)}function ut(n){return(n=Math.sin(n/2))*n}function it(){}function ot(n,t,e){return this instanceof ot?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ot?new ot(n.h,n.s,n.l):Mt(""+n,_t,ot):new ot(n,t,e)}function at(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new dt(u(n+120),u(n),u(n-120))}function ct(n,t,e){return this instanceof ct?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof ct?new ct(n.h,n.c,n.l):n instanceof st?ht(n.l,n.a,n.b):ht((n=bt((n=Bo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new ct(n,t,e)}function lt(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new st(e,Math.cos(n*=La)*t,Math.sin(n)*t)}function st(n,t,e){return this instanceof st?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof st?new st(n.l,n.a,n.b):n instanceof ct?lt(n.h,n.c,n.l):bt((n=dt(n)).r,n.g,n.b):new st(n,t,e)}function ft(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=gt(u)*Ya,r=gt(r)*Ia,i=gt(i)*Za,new dt(vt(3.2404542*u-1.5371385*r-.4985314*i),vt(-.969266*u+1.8760108*r+.041556*i),vt(.0556434*u-.2040259*r+1.0572252*i))}function ht(n,t,e){return n>0?new ct(Math.atan2(e,t)*Ta,Math.sqrt(t*t+e*e),n):new ct(0/0,0/0,n)}function gt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function pt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function vt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function dt(n,t,e){return this instanceof dt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof dt?new dt(n.r,n.g,n.b):Mt(""+n,dt,at):new dt(n,t,e)}function mt(n){return new dt(n>>16,255&n>>8,255&n)}function yt(n){return mt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function Mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(St(u[0]),St(u[1]),St(u[2]))}return(i=$a.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new ot(r,u,c)}function bt(n,t,e){n=wt(n),t=wt(t),e=wt(e);var r=pt((.4124564*n+.3575761*t+.1804375*e)/Ya),u=pt((.2126729*n+.7151522*t+.072175*e)/Ia),i=pt((.0193339*n+.119192*t+.9503041*e)/Za);return st(116*u-16,500*(r-u),200*(u-i))}function wt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function St(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function kt(n){return"function"==typeof n?n:function(){return n}}function Et(n){return n}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Ct(t,e,n,r)}}function Ct(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Bo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!Qo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Bo.event;Bo.event=n;try{o.progress.call(i,c)}finally{Bo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Jo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Bo.rebind(i,o,"on"),null==r?i:i.get(Nt(r))}function Nt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function Lt(){var n=Tt(),t=qt()-n;t>24?(isFinite(t)&&(clearTimeout(Ga),Ga=setTimeout(Lt,t)),Ja=0):(Ja=1,Qa(Lt))}function Tt(){var n=Date.now();for(Ka=Ba;Ka;)n>=Ka.t&&(Ka.f=Ka.c(n-Ka.t)),Ka=Ka.n;return n}function qt(){for(var n,t=Ba,e=1/0;t;)t.f?t=n?n.n=t.n:Ba=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Wa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ca(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:Et;return function(n){var e=tc.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=ec.get(g)||Ut;var x=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=Bo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var M,_,b=n.lastIndexOf(".");if(0>b){var w=y?n.lastIndexOf("e"):-1;0>w?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!l&&f&&(M=i(M,1/0));var S=v.length+M.length+_.length+(x?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return x&&(M=i(k+M,k.length?s-_.length:1/0)),u+=v,n=M+_,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(x?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new uc(e-1)),1),e}function i(n,e){return t(n=new uc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{uc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{uc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{uc=jt;var r=new jt;return r._=t,n(r,e)._}finally{uc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=oc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=C[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&uc!==jt,o=new(i?jt:uc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(0|r.Z/100),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in oc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function l(n,t,r){return e(n,C.X.toString(),t,r)}function s(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{uc=jt;var t=new uc;return t._=n,r(t)}finally{uc=Date}}var r=t(n);return e.parse=function(n){try{uc=jt;var t=r.parse(n);return t&&t._}finally{uc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var x=Bo.map(),M=It(v),_=Zt(v),b=It(d),w=Zt(d),S=It(m),k=Zt(m),E=It(y),A=Zt(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return Yt(n.getDate(),t,2)},e:function(n,t){return Yt(n.getDate(),t,2)},H:function(n,t){return Yt(n.getHours(),t,2)},I:function(n,t){return Yt(n.getHours()%12||12,t,2)},j:function(n,t){return Yt(1+rc.dayOfYear(n),t,3)},L:function(n,t){return Yt(n.getMilliseconds(),t,3)},m:function(n,t){return Yt(n.getMonth()+1,t,2)},M:function(n,t){return Yt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return Yt(n.getSeconds(),t,2)},U:function(n,t){return Yt(rc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Yt(rc.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return Yt(n.getFullYear()%100,t,2)},Y:function(n,t){return Yt(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function Yt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function It(n){return new RegExp("^(?:"+n.map(Bo.requote).join("|")+")","i")}function Zt(n){for(var t=new a,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=0|ca(t)/60,u=ca(t)%60;return e+Yt(r,"0",2)+Yt(u,"0",2)}function oe(n,t,e){cc.lastIndex=0;var r=cc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&hc.hasOwnProperty(n.type)&&hc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=La,t=t*La/2+Ea/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);pc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;vc.point=function(o,a){vc.point=n,r=(t=o)*La,u=Math.cos(a=(e=a)*La/2+Ea/4),i=Math.sin(a)},vc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function xe(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Me(n){return[Math.atan2(n[1],n[0]),nt(n[2])]}function _e(n,t){return ca(n[0]-t[0])<Na&&ca(n[1]-t[1])<Na}function be(n,t){n*=La;var e=Math.cos(t*=La);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++dc,yc+=(n-yc)/dc,xc+=(t-xc)/dc,Mc+=(e-Mc)/dc}function Se(){function n(n,u){n*=La;var i=Math.cos(u*=La),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);mc+=l,_c+=l*(t+(t=o)),bc+=l*(e+(e=a)),wc+=l*(r+(r=c)),we(t,e,r)}var t,e,r;Ac.point=function(u,i){u*=La;var o=Math.cos(i*=La);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),Ac.point=n,we(t,e,r)}}function ke(){Ac.point=be}function Ee(){function n(n,t){n*=La;var e=Math.cos(t*=La),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-Q(g)/h,v=Math.atan2(h,g);Sc+=p*l,kc+=p*s,Ec+=p*f,mc+=v,_c+=v*(r+(r=o)),bc+=v*(u+(u=a)),wc+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;Ac.point=function(o,a){t=o,e=a,Ac.point=n,o*=La;var c=Math.cos(a*=La);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},Ac.lineEnd=function(){n(t,e),Ac.lineEnd=ke,Ac.point=be}}function Ae(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(_e(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new ze(e,n,null,!0),l=new ze(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new ze(r,n,null,!1),l=new ze(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),Ne(i),Ne(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Ne(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function ze(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=Bo.merge(g);var n=je(m,p);g.length?(_||(i.polygonStart(),_=!0),Ce(g,Re,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=qe(),M=t(x),_=!1;return y}}function Te(n){return n.length>1}function qe(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:y,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Re(n,t){return((n=n.x)[0]<0?n[1]-Ca-Na:Ca-n[1])-((t=t.x)[0]<0?t[1]-Ca-Na:Ca-t[1])}function De(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Ea:-Ea,c=ca(i-e);ca(c-Ea)<Na?(n.point(e,r=(r+o)/2>0?Ca:-Ca),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=Ea&&(ca(e-u)<Na&&(e-=u*Na),ca(i-a)<Na&&(i-=a*Na),r=Pe(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Pe(n,t,e,r){var u,i,o=Math.sin(n-e);return ca(o)>Na?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Ue(n,t,e,r){var u;if(null==n)u=e*Ca,r.point(-Ea,u),r.point(0,u),r.point(Ea,u),r.point(Ea,0),r.point(Ea,-u),r.point(0,-u),r.point(-Ea,-u),r.point(-Ea,0),r.point(-Ea,u);else if(ca(n[0]-t[0])>Na){var i=n[0]<t[0]?Ea:-Ea;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function je(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;pc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+Ea/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+Ea/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>Ea,k=p*x;if(pc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*Aa:_,S^h>=e^m>=e){var E=de(pe(f),pe(n));xe(E);var A=de(u,E);xe(A);var C=(S^_>=0?-1:1)*nt(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Na>i||Na>i&&0>pc)^1&o}function Fe(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?Ea:-Ea),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(_e(e,g)||_e(p,g))&&(p[0]+=Na,p[1]+=Na,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&_e(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),x=m*m-y*(ve(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=ye(d,(-m-M)/y);if(me(_,p),_=Me(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ca(A-Ea)<Na,N=C||Na>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ca(_[0]-w)<Na?k:E):k<=_[1]&&_[1]<=E:A>Ea^(w<=_[0]&&_[0]<=S)){var z=ye(d,(-m+M)/y);return me(z,p),[_,Me(z)]}}}function u(t,e){var r=o?n:Ea-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ca(i)>Na,c=gr(n,6*La);return Le(t,e,c,o?[0,-n]:[-Ea,n-Ea])}function He(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Oe(n,t,e,r){function u(r,u){return ca(r[0]-n)<Na?u>0?0:3:ca(r[0]-e)<Na?u>0?2:1:ca(r[1]-t)<Na?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&K(l,i,n)>0&&++t:i[1]<=r&&K(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Nc,Math.min(Nc,n)),t=Math.max(-Nc,Math.min(Nc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=qe(),C=He(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Bo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return N}}function Ye(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ie(n){var t=0,e=Ea/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*Ea/180,e=n[1]*Ea/180):[180*(t/Ea),180*(e/Ea)]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,nt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Lc+=u*n-r*t,r=n,u=t}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,t=r=i,e=u=o},Pc.lineEnd=function(){n(t,e)}}function Xe(n,t){Tc>n&&(Tc=n),n>Rc&&(Rc=n),qc>t&&(qc=t),t>Dc&&(Dc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){yc+=n,xc+=t,++Mc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);_c+=o*(t+n)/2,bc+=o*(e+r)/2,wc+=o,We(t=n,e=r)}var t,e;jc.point=function(r,u){jc.point=n,We(t=r,e=u)}}function Ge(){jc.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);_c+=o*(r+n)/2,bc+=o*(u+t)/2,wc+=o,o=u*n-r*t,Sc+=o*(r+n),kc+=o*(u+t),Ec+=3*o,We(r=n,u=t)}var t,e,r,u;jc.point=function(i,o){jc.point=n,We(t=r=i,e=u=o)},jc.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,Aa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:y};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function s(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=l+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ca(ca(w)-1)<Na||ca(r-h)<Na?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],z=C-t,L=N-e,T=x*z-y*L;
(T*T/M>i||ca((y*z+x*L)/M-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Ta,e*Ta])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*La,n[1]*La),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Ta,n[1]*Ta]}function r(){a=Ye(o=lr(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Cc,_=Et,b=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(M(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Cc):Fe((b=+n)*La),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Oe(n[0][0],n[0][1],n[1][0],n[1][1]):Et,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*La,d=n[1]%360*La,r()):[v*Ta,d*Ta]},t.rotate=function(n){return arguments.length?(m=n[0]%360*La,y=n[1]%360*La,x=n.length>2?n[2]%360*La:0,r()):[m*Ta,y*Ta,x*Ta]},Bo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*La,e*La)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>Ea?n-Aa:-Ea>n?n+Aa:n,t]}function lr(n,t,e){return n?t||e?Ye(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>Ea?t-Aa:-Ea>t?t+Aa:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),nt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),nt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*Aa)):(u=n+o*Aa,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=Me([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,xe(e);var r=Q(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Na)%(2*Math.PI)}function vr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function xr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(ut(r-t)+u*o*ut(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ta,Math.atan2(o,Math.sqrt(r*r+u*u))*Ta]}:function(){return[n*Ta,t*Ta]};return p.distance=h,p}function Mr(){function n(n,u){var i=Math.sin(u*=La),o=Math.cos(u),a=ca((n*=La)-t),c=Math.cos(a);Fc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Hc.point=function(u,i){t=u*La,e=Math.sin(i*=La),r=Math.cos(i),Hc.point=n},Hc.lineEnd=function(){Hc.point=Hc.lineEnd=y}}function _r(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function br(n,t){function e(n,t){o>0?-Ca+Na>t&&(t=-Ca+Na):t>Ca-Na&&(t=Ca-Na);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(Ea/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=G(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ca]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ca(u)<Na?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-G(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(Ea/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=Ea*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(Ea/4+t/2)),-n]}function Ar(n){return n[0]}function Cr(n){return n[1]}function Nr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&K(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function Lr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Tr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function qr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=Kc.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Wc.remove(n),Kc.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ca(e-c.circle.x)<Na&&ca(r-c.circle.cy)<Na;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ca(e-l.circle.x)<Na&&ca(r-l.circle.cy)<Na;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Wc._;a;)if(r=Fr(a,o)-i,r>Na)a=a.L;else{if(u=i-Hr(a,o),!(u>Na)){r>-Na?(t=a.P,e=a):u>-Na?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Wc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Wc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),Vr(e),void 0;if(!e)return c.edge=Jr(t.site,c.site),void 0;Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+s,y:(h*x-v*y)/m+f};Kr(e.edge,l,p,M),c.edge=Jr(l,n,null,M),e.edge=Jr(n,p,null,M),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Yr(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Bc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ca(r-t)>Na||ca(u-e)>Na)&&(a.splice(o,0,new Qr(Gr(i.site,s,ca(r-f)<Na&&p-u>Na?{x:f,y:ca(t-f)<Na?e:p}:ca(u-p)<Na&&h-r>Na?{x:ca(e-p)<Na?t:h,y:p}:ca(r-h)<Na&&u-g>Na?{x:h,y:ca(t-h)<Na?e:g}:ca(u-g)<Na&&r-f>Na?{x:ca(e-g)<Na?t:f,y:g}:null),i.site,null)),++c)}function Ir(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=Qc.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Gc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Gc.insert(y,m),y||(Jc=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(Jc=t.N),Gc.remove(t),Qc.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=$c,r=He(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ca(t.a.x-t.b.x)<Na&&ca(t.a.y-t.b.y)<Na)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return $c.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Bc[n.i].edges.push(new Qr(u,n,t)),Bc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,$c.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for($c=[],Bc=new Array(n.length),Wc=new nu,Gc=new nu;;)if(u=Jc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Bc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Yr(t));var o={cells:Bc,edges:$c};return Wc=Gc=$c=Bc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t){n=Bo.rgb(n),t=Bo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function gu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=du(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function pu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function vu(n,t){var e,r,u,i=tl.lastIndex=el.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=tl.exec(n))&&(r=el.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:pu(e,r)})),i=el.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function du(n,t){for(var e,r=Bo.interpolators.length;--r>=0&&!(e=Bo.interpolators[r](n,t)););return e}function mu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(du(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function yu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function Mu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function bu(n){return n*n*n}function wu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Su(n){return function(t){return Math.pow(t,n)}}function ku(n){return 1-Math.cos(n*Ca)}function Eu(n){return Math.pow(2,10*(n-1))}function Au(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Aa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Aa/t)}}function Nu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function zu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=Bo.hcl(n),t=Bo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return lt(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=Bo.hsl(n),t=Bo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return at(e+i*n,r+o*n,u+a*n)+""}}function qu(n,t){n=Bo.lab(n),t=Bo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ft(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Du(n){var t=[n.a,n.b],e=[n.c,n.d],r=Uu(t),u=Pu(t,e),i=Uu(ju(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ta,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ta:0}function Pu(n,t){return n[0]*t[0]+n[1]*t[1]}function Uu(n){var t=Math.sqrt(Pu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function ju(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Fu(n,t){var e,r=[],u=[],i=Bo.transform(n),o=Bo.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:pu(a[0],c[0])},{i:3,x:pu(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:pu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:pu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:pu(g[0],p[0])},{i:e-2,x:pu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Hu(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Zu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Iu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Zu(n,t){if(n===t)return n;for(var e=Iu(n),r=Iu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Vu(n){n.fixed|=2}function Xu(n){n.fixed&=-7}function $u(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Bu(n){n.fixed&=-5}function Wu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Wu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Ju(n,t){return Bo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ei,n}function Gu(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Ku(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function Qu(n){return n.children}function ni(n){return n.value}function ti(n,t){return t.value-n.value}function ei(n){return Bo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ri(n){return n.x}function ui(n){return n.y}function ii(n,t,e){n.y0=t,n.y=e}function oi(n){return Bo.range(n.length)}function ai(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function ci(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function li(n){return n.reduce(si,0)}function si(n,t){return n+t[1]}function fi(n,t){return hi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function hi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function gi(n){return[Bo.min(n),Bo.max(n)]}function pi(n,t){return n.value-t.value}function vi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function di(n,t){n._pack_next=t,t._pack_prev=n}function mi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function yi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],bi(r,u,i),t(i),vi(r,i),r._pack_prev=i,vi(i,u),u=r._pack_next,o=3;l>o;o++){bi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(mi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!mi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?di(r,u=a):di(r=c,u),o--):(vi(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,x=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Mi)}}function xi(n){n._pack_next=n._pack_prev=n}function Mi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function bi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function wi(n,t){return n.parent==t.parent?1:2}function Si(n){var t=n.children;return t.length?t[0]:n.t}function ki(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ei(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ai(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function Ni(n){return 1+Bo.max(n,function(n){return n.y})}function zi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function qi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ri(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Di(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Pi(n){return n.rangeExtent?n.rangeExtent():Di(n.range())}function Ui(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function ji(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Fi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:gl}function Hi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=Bo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Oi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Hi:Ui,c=r?Ou:Hu;return o=u(n,t,c,e),a=u(t,n,c,du),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Ru)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Vi(n,t)},i.tickFormat=function(t,e){return Xi(n,t,e)},i.nice=function(t){return Ii(n,t),u()},i.copy=function(){return Oi(n,t,e,r)},u()}function Yi(n,t){return Bo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Ii(n,t){return ji(n,Fi(Zi(n,t)[2]))}function Zi(n,t){null==t&&(t=10);var e=Di(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Vi(n,t){return Bo.range.apply(Bo,Zi(n,t))}function Xi(n,t,e){var r=Zi(n,t);if(e){var u=tc.exec(e);if(u.shift(),"s"===u[8]){var i=Bo.formatPrefix(Math.max(ca(r[0]),ca(r[1])));return u[7]||(u[7]="."+$i(i.scale(r[2]))),u[8]="f",e=Bo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Bi(u[8],r)),e=u.join("")}else e=",."+$i(r[2])+"f";return Bo.format(e)}function $i(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Bi(n,t){var e=$i(t[2]);return n in pl?Math.abs(e-$i(Math.max(ca(t[0]),ca(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Wi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=ji(r.map(u),e?Math:dl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Di(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return vl;arguments.length<2?t=vl:"function"!=typeof t&&(t=Bo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Wi(n.copy(),t,e,r)},Yi(o,n)}function Ji(n,t,e){function r(t){return n(u(t))}var u=Gi(t),i=Gi(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Vi(e,n)},r.tickFormat=function(n,t){return Xi(e,n,t)},r.nice=function(n){return r.domain(Ii(e,n))},r.exponent=function(o){return arguments.length?(u=Gi(t=o),i=Gi(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Ji(n.copy(),t,e)},Yi(r,n)}function Gi(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Ki(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Bo.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new a;for(var i,o=-1,c=r.length;++o<c;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=(l-c)/(Math.max(1,n.length-1)+a);return i=r(n.length<2?(c+l)/2:c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c)),g=f-s-(n.length-a)*h;return i=r(s+Math.round(g/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Di(t.a[0])},e.copy=function(){return Ki(n,t)},e.domain(n)}function Qi(r,u){function i(){var n=0,t=u.length;for(a=[];++n<t;)a[n-1]=Bo.quantile(r,n/t);return o}function o(n){return isNaN(n=+n)?void 0:u[Bo.bisect(a,n)]}var a;return o.domain=function(u){return arguments.length?(r=u.map(t).filter(e).sort(n),i()):r},o.range=function(n){return arguments.length?(u=n,i()):u},o.quantiles=function(){return a},o.invertExtent=function(n){return n=u.indexOf(n),0>n?[0/0,0/0]:[n>0?a[n-1]:r[0],n<a.length?a[n]:r[r.length-1]]},o.copy=function(){return Qi(r,u)},i()}function no(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return no(n,t,e)},u()}function to(n,t){function e(e){return e>=e?t[Bo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return to(n,t)},e}function eo(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Vi(n,t)},t.tickFormat=function(t,e){return Xi(n,t,e)},t.copy=function(){return eo(n)},t}function ro(n){return n.innerRadius}function uo(n){return n.outerRadius}function io(n){return n.startAngle}function oo(n){return n.endAngle}function ao(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=kt(e),p=kt(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Cr,u=Ae,i=co,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=wl.get(n)||co).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function co(n){return n.join("L")}function lo(n){return co(n)+"Z"}function so(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function fo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function ho(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function go(n,t){return n.length<4?co(n):n[1]+mo(n.slice(1,n.length-1),yo(n,t))}function po(n,t){return n.length<3?co(n):n[0]+mo((n.push(n[0]),n),yo([n[n.length-2]].concat(n,[n[1]]),t))}function vo(n,t){return n.length<3?co(n):n[0]+mo(n,yo(n,t))}function mo(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return co(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function yo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function xo(n){if(n.length<3)return co(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",wo(El,o),",",wo(El,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),So(c,o,a);return n.pop(),c.push("L",r),c.join("")}function Mo(n){if(n.length<4)return co(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(wo(El,i)+","+wo(El,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),So(e,i,o);return e.join("")}function _o(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[wo(El,o),",",wo(El,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),So(t,o,a);return t.join("")}function bo(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return xo(n)}function wo(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function So(n,t,e){n.push("C",wo(Sl,t),",",wo(Sl,e),",",wo(kl,t),",",wo(kl,e),",",wo(El,t),",",wo(El,e))}function ko(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Eo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=ko(u,i);++t<e;)r[t]=(o+(o=ko(u=i,i=n[t+1])))/2;return r[t]=o,r}function Ao(n){for(var t,e,r,u,i=[],o=Eo(n),a=-1,c=n.length-1;++a<c;)t=ko(n[a],n[a+1]),ca(t)<Na?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Co(n){return n.length<3?co(n):n[0]+mo(n,Ao(n))}function No(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+_l,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function zo(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=kt(e),_=kt(u),b=e===r?function(){return g}:kt(r),w=u===i?function(){return p}:kt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Cr,o=Ae,a=co,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=wl.get(n)||co).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Lo(n){return n.radius}function To(n){return[n.x,n.y]}function qo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+_l;return[e*Math.cos(r),e*Math.sin(r)]}}function Ro(){return 64}function Do(){return"circle"}function Po(n){var t=Math.sqrt(n/Ea);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Uo(n,t){return ga(n,Tl),n.id=t,n}function jo(n,t,e,r){var u=n.id;return F(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Fo(n){return null==n&&(n=""),function(){this.textContent=n}}function Ho(n,t,e,r){var u=n.__transition__||(n.__transition__={active:0,count:0}),i=u[e];if(!i){var o=r.time;i=u[e]={tween:new a,time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Bo.timer(function(r){function a(r){return u.active>e?l():(u.active=e,i.event&&i.event.start.call(n,s,t),i.tween.forEach(function(e,r){(r=r.call(n,s,t))&&v.push(r)
}),Bo.timer(function(){return p.c=c(r||1)?Ae:c,1},0,o),void 0)}function c(r){if(u.active!==e)return l();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a);return o>=1?(i.event&&i.event.end.call(n,s,t),l()):void 0}function l(){return--u.count?delete u[e]:delete n.__transition__,1}var s=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ka,v=[];return p.t=h+o,r>=h?a(r-h):(p.c=a,void 0)},0,o)}}function Oo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Yo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Io(n){return n.toISOString()}function Zo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Bo.bisect(Ol,u);return i==Ol.length?[t.year,Zi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Ol[i-1]<Ol[i]/u?i-1:i]:[Zl,Zi(n,e)[2]]}return r.invert=function(t){return Vo(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Vo)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Vo(+e+1),t).length}var i=r.domain(),o=Di(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(ji(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Vo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Vo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Di(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Vo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Zo(n.copy(),t,e)},Yi(r,n)}function Vo(n){return new Date(n)}function Xo(n){return JSON.parse(n.responseText)}function $o(n){var t=Go.createRange();return t.selectNode(Go.body),t.createContextualFragment(n.responseText)}var Bo={version:"3.4.13"};Date.now||(Date.now=function(){return+new Date});var Wo=[].slice,Jo=function(n){return Wo.call(n)},Go=document,Ko=Go.documentElement,Qo=window;try{Jo(Ko.childNodes)[0].nodeType}catch(na){Jo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Go.createElement("div").style.setProperty("opacity",0,"")}catch(ta){var ea=Qo.Element.prototype,ra=ea.setAttribute,ua=ea.setAttributeNS,ia=Qo.CSSStyleDeclaration.prototype,oa=ia.setProperty;ea.setAttribute=function(n,t){ra.call(this,n,t+"")},ea.setAttributeNS=function(n,t,e){ua.call(this,n,t,e+"")},ia.setProperty=function(n,t,e){oa.call(this,n,t+"",e)}}Bo.ascending=n,Bo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Bo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},Bo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},Bo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Bo.sum=function(n,t){var r,u=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)e(r=+n[o])&&(u+=r);else for(;++o<i;)e(r=+t.call(n,n[o],o))&&(u+=r);return u},Bo.mean=function(n,r){var u,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)e(u=t(n[a]))?i+=u:--c;else for(;++a<o;)e(u=t(r.call(n,n[a],a)))?i+=u:--c;return c?i/c:void 0},Bo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},Bo.median=function(r,u){var i,o=[],a=r.length,c=-1;if(1===arguments.length)for(;++c<a;)e(i=t(r[c]))&&o.push(i);else for(;++c<a;)e(i=t(u.call(r,r[c],c)))&&o.push(i);return o.length?Bo.quantile(o.sort(n),.5):void 0};var aa=r(n);Bo.bisectLeft=aa.left,Bo.bisect=Bo.bisectRight=aa.right,Bo.bisector=function(t){return r(1===t.length?function(e,r){return n(t(e),r)}:t)},Bo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Bo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Bo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Bo.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=Bo.min(arguments,u),e=new Array(t);++n<t;)for(var r,i=-1,o=e[n]=new Array(r);++i<r;)o[i]=arguments[i][n];return e},Bo.transpose=function(n){return Bo.zip.apply(Bo,n)},Bo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},Bo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},Bo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Bo.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ca=Math.abs;Bo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,u=[],o=i(ca(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)u.push(r/o);else for(;(r=n+e*++a)<t;)u.push(r/o);return u},Bo.map=function(n){var t=new a;if(n instanceof a)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t};var la="__proto__",sa="\x00";o(a,{has:s,get:function(n){return this._[c(n)]},set:function(n,t){return this._[c(n)]=t},remove:f,keys:h,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:l(t),value:this._[t]});return n},size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t),this._[t])}}),Bo.nest=function(){function n(t,o,c){if(c>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var l,s,f,h,g=-1,p=o.length,v=i[c++],d=new a;++g<p;)(h=d.get(l=v(s=o[g])))?h.push(s):d.set(l,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,c))}):(s={},f=function(e,r){s[e]=n(t,r,c)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Bo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Bo.set=function(n){var t=new v;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},o(v,{has:s,add:function(n){return this._[c(n+="")]=!0,n},remove:f,values:h,size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t))}}),Bo.behavior={},Bo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=d(n,t,t[e]);return n};var fa=["webkit","ms","moz","Moz","o","O"];Bo.dispatch=function(){for(var n=new x,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=M(n);return n},x.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Bo.event=null,Bo.requote=function(n){return n.replace(ha,"\\$&")};var ha=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ga={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},pa=function(n,t){return t.querySelector(n)},va=function(n,t){return t.querySelectorAll(n)},da=Ko.matches||Ko[m(Ko,"matchesSelector")],ma=function(n,t){return da.call(n,t)};"function"==typeof Sizzle&&(pa=function(n,t){return Sizzle(n,t)[0]||null},va=Sizzle,ma=Sizzle.matchesSelector),Bo.selection=function(){return _a};var ya=Bo.selection.prototype=[];ya.select=function(n){var t,e,r,u,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return S(i)},ya.selectAll=function(n){var t,e,r=[];n=E(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Jo(n.call(e,e.__data__,a,u))),t.parentNode=e);return S(r)};var xa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Bo.ns={prefix:xa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),xa.hasOwnProperty(e)?{space:xa[e],local:n}:n}},ya.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Bo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(A(t,n[t]));return this}return this.each(A(n,t))},ya.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=z(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!N(n[u]).test(t))return!1;return!0}for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},ya.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(q(e,n[e],t));return this}if(2>r)return Qo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(q(n,t,e))},ya.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},ya.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ya.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ya.append=function(n){return n=D(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ya.insert=function(n,t){return n=D(n),t=k(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ya.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ya.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new a,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=P(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=P(i);for(;f>r;++r)p[r]=P(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),l.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var c=H([]),l=S([]),s=S([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return l.enter=function(){return c},l.exit=function(){return s},l},ya.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ya.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return S(u)},ya.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ya.sort=function(n){n=j.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},ya.each=function(n){return F(this,function(t,e,r){n.call(t,t.__data__,e,r)})},ya.call=function(n){var t=Jo(arguments);return n.apply(t[0]=this,t),this},ya.empty=function(){return!this.node()},ya.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ya.size=function(){var n=0;return F(this,function(){++n}),n};var Ma=[];Bo.selection.enter=H,Bo.selection.enter.prototype=Ma,Ma.append=ya.append,Ma.empty=ya.empty,Ma.node=ya.node,Ma.call=ya.call,Ma.size=ya.size,Ma.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return S(o)},Ma.insert=function(n,t){return arguments.length<2&&(t=O(this)),ya.insert.call(this,n,t)},ya.transition=function(){for(var n,t,e=Cl||++ql,r=[],u=Nl||{time:Date.now(),ease:wu,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,l=a.length;++c<l;)(t=a[c])&&Ho(t,c,e,u),n.push(t)}return Uo(r,e)},ya.interrupt=function(){return this.each(Y)},Bo.select=function(n){var t=["string"==typeof n?pa(n,Go):n];return t.parentNode=Ko,S([t])},Bo.selectAll=function(n){var t=Jo("string"==typeof n?va(n,Go):n);return t.parentNode=Ko,S([t])};var _a=Bo.select(Ko);ya.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(I(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(I(n,t,e))};var ba=Bo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ba.forEach(function(n){"on"+n in Go&&ba.remove(n)});var wa="onselectstart"in Go?null:m(Ko.style,"userSelect"),Sa=0;Bo.mouse=function(n){return $(n,b())};var ka=/WebKit/.test(Qo.navigator.userAgent)?-1:0;Bo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=b().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return $(n,r)},Bo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Bo.event.target===f),g({type:"dragend"}))}var l,s=this,f=Bo.event.target,h=s.parentNode,g=e.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Bo.select(u()).on(i+d,a).on(o+d,c),y=X(),x=t(h,v);r?(l=r.apply(s,arguments),l=[l.x-x[0],l.y-x[1]]):l=[0,0],g({type:"dragstart"})}}var e=w(n,"drag","dragstart","dragend"),r=null,u=t(y,Bo.mouse,J,"mousemove","mouseup"),i=t(B,Bo.touch,W,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Bo.rebind(n,e,"on")},Bo.touches=function(n,t){return arguments.length<2&&(t=b().touches),t?Jo(t).map(function(t){var e=$(n,t);return e.identifier=t.identifier,e}):[]};var Ea=Math.PI,Aa=2*Ea,Ca=Ea/2,Na=1e-6,za=Na*Na,La=Ea/180,Ta=180/Ea,qa=Math.SQRT2,Ra=2,Da=4;Bo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=et(v),o=i/(Ra*h)*(e*rt(qa*t+v)-tt(v));return[r+o*l,u+o*s,i*e/et(qa*t+v)]}return[r+n*l,u+n*s,i*Math.exp(qa*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Da*f)/(2*i*Ra*h),p=(c*c-i*i-Da*f)/(2*c*Ra*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/qa;return e.duration=1e3*y,e},Bo.behavior.zoom=function(){function n(n){n.on(A,l).on(ja+".zoom",f).on("dblclick.zoom",h).on(z,s)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){x&&x.domain(y.range().map(function(n){return(n-S.x)/S.k}).map(y.invert)),b&&b.domain(M.range().map(function(n){return(n-S.y)/S.k}).map(M.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function l(){function n(){s=1,u(Bo.mouse(r),h),a(l)}function e(){f.on(C,null).on(N,null),g(s&&Bo.event.target===i),c(l)}var r=this,i=Bo.event.target,l=L.of(r,arguments),s=0,f=Bo.select(Qo).on(C,n).on(N,e),h=t(Bo.mouse(r)),g=X();Y.call(r),o(l)}function s(){function n(){var n=Bo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Bo.event.target;Bo.select(t).on(x,i).on(M,f),b.push(t);for(var e=Bo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var l=n(),s=Date.now();if(1===l.length){if(500>s-m){var h=l[0],g=v[h.identifier];r(2*S.k),u(h,g),_(),a(p)}m=s}else if(l.length>1){var h=l[0],y=l[1],w=h[0]-y[0],k=h[1]-y[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Bo.touches(g),c=0,l=o.length;l>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=d&&Math.sqrt(s/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Bo.event.touches.length){for(var t=Bo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Bo.selectAll(b).on(y,null),w.on(A,l).on(z,s),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,y=".zoom-"+Bo.event.changedTouches[0].identifier,x="touchmove"+y,M="touchend"+y,b=[],w=Bo.select(g),k=X();Y.call(g),e(),o(p),w.on(A,null).on(z,e)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Bo.mouse(this)),Y.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),_(),r(Math.pow(2,.002*Pa())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Bo.mouse(this),i=t(e),l=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Bo.event.shiftKey?Math.ceil(l)-1:Math.floor(l)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,y,x,M,b,S={x:0,y:0,k:1},k=[960,500],E=Ua,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=w(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Cl?Bo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Bo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Ua:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(x=t,y=t.copy(),S={x:0,y:0,k:1},n):x},n.y=function(t){return arguments.length?(b=t,M=t.copy(),S={x:0,y:0,k:1},n):b},Bo.rebind(n,L,"on")};var Pa,Ua=[0,1/0],ja="onwheel"in Go?(Pa=function(){return-Bo.event.deltaY*(Bo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Go?(Pa=function(){return Bo.event.wheelDelta},"mousewheel"):(Pa=function(){return-Bo.event.detail},"MozMousePixelScroll");Bo.color=it,it.prototype.toString=function(){return this.rgb()+""},Bo.hsl=ot;var Fa=ot.prototype=new it;Fa.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,this.l/n)},Fa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,n*this.l)},Fa.rgb=function(){return at(this.h,this.s,this.l)},Bo.hcl=ct;var Ha=ct.prototype=new it;Ha.brighter=function(n){return new ct(this.h,this.c,Math.min(100,this.l+Oa*(arguments.length?n:1)))},Ha.darker=function(n){return new ct(this.h,this.c,Math.max(0,this.l-Oa*(arguments.length?n:1)))},Ha.rgb=function(){return lt(this.h,this.c,this.l).rgb()},Bo.lab=st;var Oa=18,Ya=.95047,Ia=1,Za=1.08883,Va=st.prototype=new it;Va.brighter=function(n){return new st(Math.min(100,this.l+Oa*(arguments.length?n:1)),this.a,this.b)},Va.darker=function(n){return new st(Math.max(0,this.l-Oa*(arguments.length?n:1)),this.a,this.b)},Va.rgb=function(){return ft(this.l,this.a,this.b)},Bo.rgb=dt;var Xa=dt.prototype=new it;Xa.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new dt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new dt(u,u,u)},Xa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new dt(n*this.r,n*this.g,n*this.b)},Xa.hsl=function(){return _t(this.r,this.g,this.b)},Xa.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var $a=Bo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});$a.forEach(function(n,t){$a.set(n,mt(t))}),Bo.functor=kt,Bo.xhr=At(Et),Bo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Ct(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new v,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Bo.csv=Bo.dsv(",","text/csv"),Bo.tsv=Bo.dsv(" ","text/tab-separated-values");var Ba,Wa,Ja,Ga,Ka,Qa=Qo[m(Qo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Bo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Wa?Wa.n=i:Ba=i,Wa=i,Ja||(Ga=clearTimeout(Ga),Ja=1,Qa(Lt))},Bo.timer.flush=function(){Tt(),qt()},Bo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var nc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);Bo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Bo.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),nc[8+e/3]};var tc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ec=Bo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Bo.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),rc=Bo.time={},uc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){ic.setUTCDate.apply(this._,arguments)},setDay:function(){ic.setUTCDay.apply(this._,arguments)},setFullYear:function(){ic.setUTCFullYear.apply(this._,arguments)},setHours:function(){ic.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ic.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ic.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ic.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ic.setUTCSeconds.apply(this._,arguments)},setTime:function(){ic.setTime.apply(this._,arguments)}};var ic=Date.prototype;rc.year=Ft(function(n){return n=rc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),rc.years=rc.year.range,rc.years.utc=rc.year.utc.range,rc.day=Ft(function(n){var t=new uc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),rc.days=rc.day.range,rc.days.utc=rc.day.utc.range,rc.dayOfYear=function(n){var t=rc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=rc[n]=Ft(function(n){return(n=rc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});rc[n+"s"]=e.range,rc[n+"s"].utc=e.utc.range,rc[n+"OfYear"]=function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)}}),rc.week=rc.sunday,rc.weeks=rc.sunday.range,rc.weeks.utc=rc.sunday.utc.range,rc.weekOfYear=rc.sundayOfYear;var oc={"-":"",_:" ",0:"0"},ac=/^\s*\d+/,cc=/^%/;Bo.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var lc=Bo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Bo.format=lc.numberFormat,Bo.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,sc),le(sc.s,this.s,this),this.s?this.t+=sc.t:this.s=sc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sc=new ce;Bo.geo.stream=function(n,t){n&&fc.hasOwnProperty(n.type)?fc[n.type](n,t):se(n,t)};var fc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},hc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};Bo.geo.area=function(n){return gc=0,Bo.geo.stream(n,vc),gc};var gc,pc=new ce,vc={sphere:function(){gc+=4*Ea},point:y,lineStart:y,lineEnd:y,polygonStart:function(){pc.reset(),vc.lineStart=ge},polygonEnd:function(){var n=2*pc;gc+=0>n?4*Ea+n:n,vc.lineStart=vc.lineEnd=vc.point=y}};Bo.geo.bounds=function(){function n(n,t){x.push(M=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*La,e*La]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);xe(o),o=Me(o);var c=t-p,l=c>0?1:-1,v=o[0]*Ta*l,d=ca(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Ta;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Ta;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=s,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ca(r)>180?r+(r>0?360:-360):r}else v=n,d=e;vc.point(n,e),t(n,e)}function i(){vc.lineStart()}function o(){u(v,d),vc.lineEnd(),ca(y)>Na&&(s=-(h=180)),M[0]=s,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,vc.polygonStart()},polygonEnd:function(){vc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>pc?(s=-(h=180),f=-(g=90)):y>Na?g=90:-Na>y&&(f=-90),M[0]=s,M[1]=h}};return function(n){g=h=-(s=f=1/0),x=[],Bo.geo.stream(n,_);
var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return x=M=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),Bo.geo.centroid=function(n){dc=mc=yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,Ac);var t=Sc,e=kc,r=Ec,u=t*t+e*e+r*r;return za>u&&(t=_c,e=bc,r=wc,Na>mc&&(t=yc,e=xc,r=Mc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Ta,nt(r/Math.sqrt(u))*Ta]};var dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc,Ec,Ac={sphere:y,point:be,lineStart:Se,lineEnd:ke,polygonStart:function(){Ac.lineStart=Ee},polygonEnd:function(){Ac.lineStart=Se}},Cc=Le(Ae,De,Ue,[-Ea,-Ea/2]),Nc=1e9;Bo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Oe(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Bo.geo.conicEqualArea=function(){return Ie(Ze)}).raw=Ze,Bo.geo.albers=function(){return Bo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Bo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Bo.geo.albers(),o=Bo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Bo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Na,f+.12*l+Na],[s-.214*l-Na,f+.234*l-Na]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Na,f+.166*l+Na],[s-.115*l-Na,f+.234*l-Na]]).stream(c).point,n},n.scale(1070)};var zc,Lc,Tc,qc,Rc,Dc,Pc={point:y,lineStart:y,lineEnd:y,polygonStart:function(){Lc=0,Pc.lineStart=Ve},polygonEnd:function(){Pc.lineStart=Pc.lineEnd=Pc.point=y,zc+=ca(Lc/2)}},Uc={point:Xe,lineStart:y,lineEnd:y,polygonStart:y,polygonEnd:y},jc={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){jc.lineStart=Ke},polygonEnd:function(){jc.point=We,jc.lineStart=Je,jc.lineEnd=Ge}};Bo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Bo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return zc=0,Bo.geo.stream(n,u(Pc)),zc},n.centroid=function(n){return yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,u(jc)),Ec?[Sc/Ec,kc/Ec]:wc?[_c/wc,bc/wc]:Mc?[yc/Mc,xc/Mc]:[0/0,0/0]},n.bounds=function(n){return Rc=Dc=-(Tc=qc=1/0),Bo.geo.stream(n,u(Uc)),[[Tc,qc],[Rc,Dc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):Et,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Bo.geo.albersUsa()).context(null)},Bo.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Bo.geo.projection=ur,Bo.geo.projectionMutator=ir,(Bo.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,Bo.geo.rotation=function(n){function t(t){return t=n(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t}return n=lr(n[0]%360*La,n[1]*La,n.length>2?n[2]*La:0),t.invert=function(t){return t=n.invert(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t},t},cr.invert=ar,Bo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*La,-n[1]*La,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ta,n[1]*=Ta}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*La,u*La),n):t},n.precision=function(r){return arguments.length?(e=gr(t*La,(u=+r)*La),n):u},n.angle(90)},Bo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*La,u=n[1]*La,i=t[1]*La,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},Bo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Bo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Bo.range(Math.ceil(l/m)*m,c,m).map(g)).concat(Bo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ca(n%d)>Na}).map(s)).concat(Bo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ca(n%m)>Na}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Na],[180,90-Na]]).minorExtent([[-180,-80-Na],[180,80+Na]])},Bo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return Bo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Bo.geo.interpolate=function(n,t){return xr(n[0]*La,n[1]*La,t[0]*La,t[1]*La)},Bo.geo.length=function(n){return Fc=0,Bo.geo.stream(n,Hc),Fc};var Fc,Hc={sphere:y,point:y,lineStart:Mr,lineEnd:y,polygonStart:y,polygonEnd:y},Oc=_r(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Bo.geo.azimuthalEqualArea=function(){return ur(Oc)}).raw=Oc;var Yc=_r(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},Et);(Bo.geo.azimuthalEquidistant=function(){return ur(Yc)}).raw=Yc,(Bo.geo.conicConformal=function(){return Ie(br)}).raw=br,(Bo.geo.conicEquidistant=function(){return Ie(wr)}).raw=wr;var Ic=_r(function(n){return 1/n},Math.atan);(Bo.geo.gnomonic=function(){return ur(Ic)}).raw=Ic,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ca]},(Bo.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Zc=_r(function(){return 1},Math.asin);(Bo.geo.orthographic=function(){return ur(Zc)}).raw=Zc;var Vc=_r(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Bo.geo.stereographic=function(){return ur(Vc)}).raw=Vc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ca]},(Bo.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,Bo.geom={},Bo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=kt(e),i=kt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Nr(a),s=Nr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Cr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},Bo.geom.polygon=function(n){return ga(n,Xc),n};var Xc=Bo.geom.polygon.prototype=[];Xc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Xc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Xc.clip=function(n){for(var t,e,r,u,i,o,a=qr(n),c=-1,l=this.length-qr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Lr(o,s,u)?(Lr(i,s,u)||n.push(Tr(i,o,s,u)),n.push(o)):Lr(i,s,u)&&n.push(Tr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var $c,Bc,Wc,Jc,Gc,Kc=[],Qc=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ir),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Bo.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Na)*Na,y:Math.round(o(n,t)/Na)*Na,i:t}})}var r=Ar,u=Cr,i=r,o=u,a=nl;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Ir),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=kt(r=n),t):r},t.y=function(n){return arguments.length?(o=kt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?nl:n,t):a===nl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===nl?null:a&&a[1]},t)};var nl=[[-1e6,-1e6],[1e6,1e6]];Bo.geom.delaunay=function(n){return Bo.geom.voronoi().triangles(n)},Bo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ca(c-e)+ca(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,x=kt(a),M=kt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var _=+x(s=n[g],g),b=+M(s,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Cr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},Bo.interpolateRgb=hu,Bo.interpolateObject=gu,Bo.interpolateNumber=pu,Bo.interpolateString=vu;var tl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,el=new RegExp(tl.source,"g");Bo.interpolate=du,Bo.interpolators=[function(n,t){var e=typeof t;return("string"===e?$a.has(t)||/^(#|rgb\(|hsl\()/.test(t)?hu:vu:t instanceof it?hu:Array.isArray(t)?mu:"object"===e&&isNaN(t)?gu:pu)(n,t)}],Bo.interpolateArray=mu;var rl=function(){return Et},ul=Bo.map({linear:rl,poly:Su,quad:function(){return _u},cubic:function(){return bu},sin:function(){return ku},exp:function(){return Eu},circle:function(){return Au},elastic:Cu,back:Nu,bounce:function(){return zu}}),il=Bo.map({"in":Et,out:xu,"in-out":Mu,"out-in":function(n){return Mu(xu(n))}});Bo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||rl,r=il.get(r)||Et,yu(r(e.apply(null,Wo.call(arguments,1))))},Bo.interpolateHcl=Lu,Bo.interpolateHsl=Tu,Bo.interpolateLab=qu,Bo.interpolateRound=Ru,Bo.transform=function(n){var t=Go.createElementNS(Bo.ns.prefix.svg,"g");return(Bo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Du(e?e.matrix:ol)})(n)},Du.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ol={a:1,b:0,c:0,d:1,e:0,f:0};Bo.interpolateTransform=Fu,Bo.layout={},Bo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},Bo.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=Bo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(Bo.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(Aa-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=l,b=l+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},Bo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=Bo.event.x,n.py=Bo.event.y,a.resume()}var e,r,u,i,o,a={},c=Bo.dispatch("start","tick","end"),l=[1,1],s=.9,f=al,h=cl,g=-30,p=ll,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=l[0]/2,M=l[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Wu(t=Bo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Bo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;l>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=y.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Bo.behavior.drag().origin(Et).on("dragstart.force",Vu).on("drag.force",t).on("dragend.force",Xu)),arguments.length?(this.on("mouseover.force",$u).on("mouseout.force",Bu).call(e),void 0):e},Bo.rebind(a,c,"on")};var al=20,cl=1,ll=1/0;Bo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Ku(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ti,e=Qu,r=ni;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Gu(t,function(n){n.children&&(n.value=0)}),Ku(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Bo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=Bo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Ju(e,r)},Bo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Bo.sum(o),l=Bo.range(i.length);null!=e&&l.sort(e===sl?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),s}var t=Number,e=sl,r=0,u=Aa;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var sl={};Bo.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=Bo.permute(l,f),s=Bo.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=Et,e=oi,r=ai,u=ii,i=ri,o=ui;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:fl.get(t)||oi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:hl.get(t)||ai,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var fl=Bo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ci),i=n.map(li),o=Bo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return Bo.range(n.length).reverse()},"default":oi}),hl=Bo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ai});Bo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[Bo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=gi,u=fi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=kt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return hi(n,t)}:kt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Bo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Ku(a,function(n){n.r=+s(n.value)}),Ku(a,yi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Ku(a,function(n){n.r+=f}),Ku(a,yi),Ku(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=Bo.layout.hierarchy().sort(pi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Ju(n,e)},Bo.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Ku(h,e),h.parent.m=-h.z,Gu(h,r),l)Gu(f,i);else{var g=f,p=f,v=f;Gu(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Gu(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ai(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=ki(o),u=Si(u),o&&u;)c=Si(c),i=ki(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ei(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!ki(i)&&(i.t=o,i.m+=f-s),u&&!Si(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Bo.layout.hierarchy().sort(null).value(null),a=wi,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Ju(n,o)},Bo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Ku(c,function(n){var t=n.children;t&&t.length?(n.x=zi(t),n.y=Ni(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Ku(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Bo.layout.hierarchy().sort(null).value(null),e=wi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Ju(n,t)},Bo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=Bo.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=qi,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?qi(t):Ri(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ri(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?qi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Ju(i,a)},Bo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Bo.random.normal.apply(Bo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Bo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Bo.scale={};var gl={floor:Et,ceil:Et};Bo.scale.linear=function(){return Oi([0,1],[0,1],du,!1)};var pl={s:1,g:1,p:1,r:1,e:1};Bo.scale.log=function(){return Wi(Bo.scale.linear().domain([0,1]),10,!0,[1,10])};var vl=Bo.format(".0e"),dl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Bo.scale.pow=function(){return Ji(Bo.scale.linear(),1,[0,1])},Bo.scale.sqrt=function(){return Bo.scale.pow().exponent(.5)},Bo.scale.ordinal=function(){return Ki([],{t:"range",a:[[]]})},Bo.scale.category10=function(){return Bo.scale.ordinal().range(ml)},Bo.scale.category20=function(){return Bo.scale.ordinal().range(yl)},Bo.scale.category20b=function(){return Bo.scale.ordinal().range(xl)},Bo.scale.category20c=function(){return Bo.scale.ordinal().range(Ml)};var ml=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(yt),yl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(yt),xl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(yt),Ml=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(yt);Bo.scale.quantile=function(){return Qi([],[])
},Bo.scale.quantize=function(){return no(0,1,[0,1])},Bo.scale.threshold=function(){return to([.5],[0,1])},Bo.scale.identity=function(){return eo([0,1])},Bo.svg={},Bo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+_l,a=u.apply(this,arguments)+_l,c=(o>a&&(c=o,o=a,a=c),a-o),l=Ea>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=bl?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+l+",0 "+n*s+","+n*f+"Z":"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=ro,e=uo,r=io,u=oo;return n.innerRadius=function(e){return arguments.length?(t=kt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=kt(t),n):e},n.startAngle=function(t){return arguments.length?(r=kt(t),n):r},n.endAngle=function(t){return arguments.length?(u=kt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+_l;return[Math.cos(i)*n,Math.sin(i)*n]},n};var _l=-Ca,bl=Aa-Na;Bo.svg.line=function(){return ao(Et)};var wl=Bo.map({linear:co,"linear-closed":lo,step:so,"step-before":fo,"step-after":ho,basis:xo,"basis-open":Mo,"basis-closed":_o,bundle:bo,cardinal:vo,"cardinal-open":go,"cardinal-closed":po,monotone:Co});wl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Sl=[0,2/3,1/3,0],kl=[0,1/3,2/3,0],El=[0,1/6,2/3,1/6];Bo.svg.line.radial=function(){var n=ao(No);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},fo.reverse=ho,ho.reverse=fo,Bo.svg.area=function(){return zo(Et)},Bo.svg.area.radial=function(){var n=zo(No);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Bo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+_l,s=l.call(n,u,r)+_l;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Ea)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Lo,c=io,l=oo;return n.radius=function(t){return arguments.length?(a=kt(t),n):a},n.source=function(t){return arguments.length?(i=kt(t),n):i},n.target=function(t){return arguments.length?(o=kt(t),n):o},n.startAngle=function(t){return arguments.length?(c=kt(t),n):c},n.endAngle=function(t){return arguments.length?(l=kt(t),n):l},n},Bo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=To;return n.source=function(e){return arguments.length?(t=kt(e),n):t},n.target=function(t){return arguments.length?(e=kt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Bo.svg.diagonal.radial=function(){var n=Bo.svg.diagonal(),t=To,e=n.projection;return n.projection=function(n){return arguments.length?e(qo(t=n)):t},n},Bo.svg.symbol=function(){function n(n,r){return(Al.get(t.call(this,n,r))||Po)(e.call(this,n,r))}var t=Do,e=Ro;return n.type=function(e){return arguments.length?(t=kt(e),n):t},n.size=function(t){return arguments.length?(e=kt(t),n):e},n};var Al=Bo.map({circle:Po,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Bo.svg.symbolTypes=Al.keys();var Cl,Nl,zl=Math.sqrt(3),Ll=Math.tan(30*La),Tl=[],ql=0;Tl.call=ya.call,Tl.empty=ya.empty,Tl.node=ya.node,Tl.size=ya.size,Bo.transition=function(n){return arguments.length?Cl?n.transition():n:_a.transition()},Bo.transition.prototype=Tl,Tl.select=function(n){var t,e,r,u=this.id,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],l=-1,s=c.length;++l<s;)(r=c[l])&&(e=n.call(r,r.__data__,l,o))?("__data__"in r&&(e.__data__=r.__data__),Ho(e,l,u,r.__transition__[u]),t.push(e)):t.push(null)}return Uo(i,u)},Tl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=E(n);for(var c=-1,l=this.length;++c<l;)for(var s=this[c],f=-1,h=s.length;++f<h;)if(r=s[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&Ho(u,g,o,i),t.push(u)}return Uo(a,o)},Tl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Uo(u,this.id)},Tl.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):F(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Tl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Fu:du,a=Bo.ns.qualify(n);return jo(this,"attr."+n,t,a.local?i:u)},Tl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Bo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Tl.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Qo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=du(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return jo(this,"style."+n,t,u)},Tl.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Qo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Tl.text=function(n){return jo(this,"text",n,Fo)},Tl.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Tl.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Bo.ease.apply(Bo,arguments)),F(this,function(e){e.__transition__[t].ease=n}))},Tl.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Tl.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Tl.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Nl,u=Cl;Cl=e,F(this,function(t,r,u){Nl=t.__transition__[e],n.call(t,t.__data__,r,u)}),Nl=r,Cl=u}else F(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Bo.dispatch("start","end"))).on(n,t)});return this},Tl.transition=function(){for(var n,t,e,r,u=this.id,i=++ql,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],l=0,s=t.length;s>l;l++)(e=t[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Ho(e,l,i,r)),n.push(e)}return Uo(o,i)},Bo.svg.axis=function(){function n(n){n.each(function(){var n,l=Bo.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):Et:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Na),d=Bo.transition(p.exit()).style("opacity",Na).remove(),m=Bo.transition(p.order()).style("opacity",1),y=Math.max(u,0)+o,x=Pi(f),M=l.selectAll(".domain").data([0]),_=(M.enter().append("path").attr("class","domain"),Bo.transition(M));v.append("line"),v.append("text");var b,w,S,k,E=v.select("line"),A=m.select("line"),C=p.select("text").text(g),N=v.select("text"),z=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Oo,b="x",S="y",w="x2",k="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Yo,b="y",S="x",w="y2",k="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),E.attr(k,L*u),N.attr(S,L*y),A.attr(w,0).attr(k,L*u),z.attr(b,0).attr(S,L*y),f.rangeBand){var T=f,q=T.rangeBand()/2;s=f=function(n){return T(n)+q}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=Bo.scale.linear(),r=Rl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Dl?t+"":Rl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Rl="bottom",Dl={top:1,right:1,bottom:1,left:1};Bo.svg.brush=function(){function n(i){i.each(function(){var i=Bo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,Et);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Pl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var s,f=Bo.transition(i),h=Bo.transition(o);c&&(s=Pi(c),h.attr("x",s[0]).attr("width",s[1]-s[0]),e(f)),l&&(s=Pi(l),h.attr("y",s[0]).attr("height",s[1]-s[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Bo.event.keyCode&&(C||(y=null,z[0]-=s[1],z[1]-=f[1],C=2),_())}function p(){32==Bo.event.keyCode&&2==C&&(z[0]+=s[1],z[1]+=f[1],C=0,_())}function v(){var n=Bo.mouse(M),u=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(Bo.event.altKey?(y||(y=[(s[0]+s[1])/2,(f[0]+f[1])/2]),z[0]=s[+(n[0]<y[0])],z[1]=f[+(n[1]<y[1])]):y=null),E&&d(n,c,0)&&(e(S),u=!0),A&&d(n,l,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function d(n,t,e){var r,u,a=Pi(t),c=a[0],l=a[1],p=z[e],v=e?f:s,d=v[1]-v[0];return C&&(c-=p,l-=d+p),r=(e?g:h)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=p)+d:(y&&(p=Math.max(c,Math.min(l,2*y[e]-r))),r>p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Bo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var y,x,M=this,b=Bo.select(Bo.event.target),w=a.of(M,arguments),S=Bo.select(M),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&l,C=b.classed("extent"),N=X(),z=Bo.mouse(M),L=Bo.select(Qo).on("keydown.brush",u).on("keyup.brush",p);if(Bo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=s[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);x=[s[1-T]-z[0],f[1-q]-z[1]],z[0]=s[T],z[1]=f[q]}else Bo.event.altKey&&(y=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Bo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=w(n,"brushstart","brush","brushend"),c=null,l=null,s=[0,0],f=[0,0],h=!0,g=!0,p=Ul[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:s,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Cl?Bo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,s=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=mu(s,t.x),r=mu(f,t.y);return i=o=null,function(u){s=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=Ul[!c<<1|!l],n):c},n.y=function(t){return arguments.length?(l=t,p=Ul[!c<<1|!l],n):l},n.clamp=function(t){return arguments.length?(c&&l?(h=!!t[0],g=!!t[1]):c?h=!!t:l&&(g=!!t),n):c&&l?[h,g]:c?h:l?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],l&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=s[0]||r!=s[1])&&(s=[e,r])),l&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],l.invert&&(u=l(u),a=l(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),l&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],l.invert&&(u=l.invert(u),a=l.invert(a)),u>a&&(h=u,u=a,a=h))),c&&l?[[e,u],[r,a]]:c?[e,r]:l&&[u,a])},n.clear=function(){return n.empty()||(s=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!l&&f[0]==f[1]},Bo.rebind(n,a,"on")};var Pl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ul=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],jl=rc.format=lc.timeFormat,Fl=jl.utc,Hl=Fl("%Y-%m-%dT%H:%M:%S.%LZ");jl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Io:Hl,Io.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Io.toString=Hl.toString,rc.second=Ft(function(n){return new uc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),rc.seconds=rc.second.range,rc.seconds.utc=rc.second.utc.range,rc.minute=Ft(function(n){return new uc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),rc.minutes=rc.minute.range,rc.minutes.utc=rc.minute.utc.range,rc.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new uc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),rc.hours=rc.hour.range,rc.hours.utc=rc.hour.utc.range,rc.month=Ft(function(n){return n=rc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),rc.months=rc.month.range,rc.months.utc=rc.month.utc.range;var Ol=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Yl=[[rc.second,1],[rc.second,5],[rc.second,15],[rc.second,30],[rc.minute,1],[rc.minute,5],[rc.minute,15],[rc.minute,30],[rc.hour,1],[rc.hour,3],[rc.hour,6],[rc.hour,12],[rc.day,1],[rc.day,2],[rc.week,1],[rc.month,1],[rc.month,3],[rc.year,1]],Il=jl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ae]]),Zl={range:function(n,t,e){return Bo.range(Math.ceil(n/e)*e,+t,e).map(Vo)},floor:Et,ceil:Et};Yl.year=rc.year,rc.scale=function(){return Zo(Bo.scale.linear(),Yl,Il)};var Vl=Yl.map(function(n){return[n[0].utc,n[1]]}),Xl=Fl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ae]]);Vl.year=rc.year.utc,rc.scale.utc=function(){return Zo(Bo.scale.linear(),Vl,Xl)},Bo.text=At(function(n){return n.responseText}),Bo.json=function(n,t){return Ct(n,"application/json",Xo,t)},Bo.html=function(n,t){return Ct(n,"text/html",$o,t)},Bo.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Bo):"object"==typeof module&&module.exports&&(module.exports=Bo),this.d3=Bo}();
// Get JSON data
treeJSON = d3.json("py_generated.json", function(error, treeData) {
// Calculate total nodes, max label length
var totalNodes = 0;
var maxLabelLength = 10;
// variables for drag/drop
var selectedNode = null;
var draggingNode = null;
// panning variables
var panSpeed = 200;
var panBoundary = 20; // Within 20px from edges will pan when dragging.
// Misc. variables
var i = 0;
var duration = 650;
var root;
// size of the diagram
var viewerWidth = $(document).width();
var viewerHeight = $(document).height();
var tree = d3.layout.tree()
.size([viewerHeight, viewerWidth]);
// define a d3 diagonal projection for use by the node paths later on.
var diagonal = d3.svg.diagonal()
.projection(function(d) {
return [d.y, d.x];
});
// A recursive helper function for performing some setup by walking through all nodes
function visit(parent, visitFn, childrenFn) {
if (!parent) return;
visitFn(parent);
var children = childrenFn(parent);
if (children) {
var count = children.length;
for (var i = 0; i < count; i++) {
visit(children[i], visitFn, childrenFn);
}
}
}
// Call visit function to establish maxLabelLength
visit(treeData, function(d) {
totalNodes++;
maxLabelLength = Math.max(d.name.length, maxLabelLength);
}, function(d) {
return d.children && d.children.length > 0 ? d.children : null;
});
// sort the tree according to the node names
function sortTree() {
tree.sort(function(a, b) {
return b.name.toLowerCase() < a.name.toLowerCase() ? 1 : -1;
});
}
// Sort the tree initially incase the JSON isn't in a sorted order.
//sortTree();
// TODO: Pan function, can be better implemented.
function pan(domNode, direction) {
var speed = panSpeed;
if (panTimer) {
clearTimeout(panTimer);
translateCoords = d3.transform(svgGroup.attr("transform"));
if (direction == 'left' || direction == 'right') {
translateX = direction == 'left' ? translateCoords.translate[0] + speed : translateCoords.translate[0] - speed;
translateY = translateCoords.translate[1];
} else if (direction == 'up' || direction == 'down') {
translateX = translateCoords.translate[0];
translateY = direction == 'up' ? translateCoords.translate[1] + speed : translateCoords.translate[1] - speed;
}
scaleX = translateCoords.scale[0];
scaleY = translateCoords.scale[1];
scale = zoomListener.scale();
svgGroup.transition().attr("transform", "translate(" + translateX + "," + translateY + ")scale(" + scale + ")");
d3.select(domNode).select('g.node').attr("transform", "translate(" + translateX + "," + translateY + ")");
zoomListener.scale(zoomListener.scale());
zoomListener.translate([translateX, translateY]);
panTimer = setTimeout(function() {
pan(domNode, speed, direction);
}, 50);
}
}
// Define the zoom function for the zoomable tree
function zoom() {
//svgGroup.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
svgGroup.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
// define the zoomListener which calls the zoom function on the "zoom" event constrained within the scaleExtents
var zoomListener = d3.behavior.zoom()
.scaleExtent([0.1, 3])
.on("zoom", zoom);
//// lisakov stop nodes dragging!!! It is dangerous.
// // function initiateDrag(d, domNode) {
// draggingNode = d;
// d3.select(domNode).select('.ghostCircle').attr('pointer-events', 'none');
// d3.selectAll('.ghostCircle').attr('class', 'ghostCircle show');
// d3.select(domNode).attr('class', 'node activeDrag');
//
// svgGroup.selectAll("g.node").sort(function(a, b) { // select the parent and sort the path's
// if (a.id != draggingNode.id) return 1; // a is not the hovered element, send "a" to the back
// else return -1; // a is the hovered element, bring "a" to the front
// });
// // if nodes has children, remove the links and nodes
// if (nodes.length > 1) {
// // remove link paths
// links = tree.links(nodes);
// nodePaths = svgGroup.selectAll("path.link")
// .data(links, function(d) {
// return d.target.id;
// }).remove();
// // remove child nodes
// nodesExit = svgGroup.selectAll("g.node")
// .data(nodes, function(d) {
// return d.id;
// }).filter(function(d, i) {
// if (d.id == draggingNode.id) {
// return false;
// }
// return true;
// }).remove();
// }
//
// // remove parent link
// parentLink = tree.links(tree.nodes(draggingNode.parent));
// svgGroup.selectAll('path.link').filter(function(d, i) {
// if (d.target.id == draggingNode.id) {
// return true;
// }
// return false;
// }).remove();
//
// dragStarted = null;
// }
//
// define the baseSvg, attaching a class for styling and the zoomListener
var baseSvg = d3.select("#tree-container").append("svg")
.attr("width", viewerWidth)
.attr("height", viewerHeight)
.attr("class", "overlay")
.call(zoomListener);
// Define the drag listeners for drag/drop behaviour of nodes.
dragListener = d3.behavior.drag()
.on("dragstart", function(d) {
if (d == root) {
return;
}
dragStarted = true;
nodes = tree.nodes(d);
d3.event.sourceEvent.stopPropagation();
// it's important that we suppress the mouseover event on the node being dragged. Otherwise it will absorb the mouseover event and the underlying node will not detect it d3.select(this).attr('pointer-events', 'none');
})
.on("drag", function(d) {
if (d == root) {
return;
}
if (dragStarted) {
domNode = this;
initiateDrag(d, domNode);
}
// get coords of mouseEvent relative to svg container to allow for panning
relCoords = d3.mouse($('svg').get(0));
if (relCoords[0] < panBoundary) {
panTimer = true;
pan(this, 'left');
} else if (relCoords[0] > ($('svg').width() - panBoundary)) {
panTimer = true;
pan(this, 'right');
} else if (relCoords[1] < panBoundary) {
panTimer = true;
pan(this, 'up');
} else if (relCoords[1] > ($('svg').height() - panBoundary)) {
panTimer = true;
pan(this, 'down');
} else {
try {
clearTimeout(panTimer);
} catch (e) {
}
}
d.x0 += d3.event.dy;
d.y0 += d3.event.dx;
var node = d3.select(this);
node.attr("transform", "translate(" + d.y0 + "," + d.x0 + ")");
updateTempConnector();
}).on("dragend", function(d) {
if (d == root) {
return;
}
domNode = this;
if (selectedNode) {
// now remove the element from the parent, and insert it into the new elements children
var index = draggingNode.parent.children.indexOf(draggingNode);
if (index > -1) {
draggingNode.parent.children.splice(index, 1);
}
if (typeof selectedNode.children !== 'undefined' || typeof selectedNode._children !== 'undefined') {
if (typeof selectedNode.children !== 'undefined') {
selectedNode.children.push(draggingNode);
} else {
selectedNode._children.push(draggingNode);
}
} else {
selectedNode.children = [];
selectedNode.children.push(draggingNode);
}
// Make sure that the node being added to is expanded so user can see added node is correctly moved
expand(selectedNode);
sortTree();
endDrag();
} else {
endDrag();
}
});
function endDrag() {
selectedNode = null;
d3.selectAll('.ghostCircle').attr('class', 'ghostCircle');
d3.select(domNode).attr('class', 'node');
// now restore the mouseover event or we won't be able to drag a 2nd time
d3.select(domNode).select('.ghostCircle').attr('pointer-events', '');
updateTempConnector();
if (draggingNode !== null) {
update(root);
centerNode(draggingNode);
draggingNode = null;
}
}
// Helper functions for collapsing and expanding nodes.
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
function expand(d) {
if (d._children) {
d.children = d._children;
d.children.forEach(expand);
d._children = null;
}
}
var overCircle = function(d) {
selectedNode = d;
updateTempConnector();
};
var outCircle = function(d) {
selectedNode = null;
updateTempConnector();
};
// Function to update the temporary connector indicating dragging affiliation
var updateTempConnector = function() {
var data = [];
if (draggingNode !== null && selectedNode !== null) {
// have to flip the source coordinates since we did this for the existing connectors on the original tree
data = [{
source: {
x: selectedNode.y0,
y: selectedNode.x0
},
target: {
x: draggingNode.y0,
y: draggingNode.x0
}
}];
}
var link = svgGroup.selectAll(".templink").data(data);
link.enter().append("path")
.attr("class", "templink")
.attr("d", d3.svg.diagonal())
.attr('pointer-events', 'none');
link.attr("d", d3.svg.diagonal());
link.exit().remove();
};
// Function to center node when clicked/dropped so node doesn't get lost when collapsing/moving with large amount of children.
function centerNode(source) {
scale = zoomListener.scale();
x = -source.y0;
y = -source.x0;
x = x * scale + viewerWidth / 2; // lisakov do not change horizontal position, annoying
y = y * scale + viewerHeight / 2;
d3.select('g').transition()
.duration(duration)
.attr("transform", "translate(" + x + "," + y + ")scale(" + scale + ")");
zoomListener.scale(scale);
zoomListener.translate([x, y]);
}
// Toggle children function
function toggleChildren(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else if (d._children) {
d.children = d._children;
d._children = null;
}
return d;
}
// Toggle children on click.
function click(d) {
if (d3.event.defaultPrevented) return; // click suppressed
d = toggleChildren(d);
update(d);
centerNode(d); //lisakov do not center node each time, annoying
}
// lisakov func trying make work onmouseover
function update(source) {
// Compute the new height, function counts total children of root node and sets tree height accordingly.
// This prevents the layout looking squashed when new nodes are made visible or looking sparse when nodes are removed
// This makes the layout more consistent.
var levelWidth = [1];
var childCount = function(level, n) {
if (n.children && n.children.length > 0) {
if (levelWidth.length <= level + 1) levelWidth.push(0);
levelWidth[level + 1] += n.children.length;
n.children.forEach(function(d) {
childCount(level + 1, d);
});
}
};
childCount(0, root);
var newHeight = d3.max(levelWidth) * 30; // lisakov set px per line.
tree = tree.size([newHeight, viewerWidth]);
// Compute the new tree layout.
var nodes = tree.nodes(root).reverse(),
links = tree.links(nodes);
// Set widths between levels based on maxLabelLength.
nodes.forEach(function(d) {
d.y = (d.depth * (maxLabelLength * 6)); //maxLabelLength * 10px
// alternatively to keep a fixed scale one can set a fixed depth per level
// Normalize for fixed-depth by commenting out below line
// d.y = (d.depth * 500); //500px per level.
});
// Update the nodes…
node = svgGroup.selectAll("g.node")
.data(nodes, function(d) {
return d.id || (d.id = ++i);
});
// Enter any new nodes at the parent's previous position.
var nodeEnter = node.enter().append("g")
.call(dragListener)
.attr("class", "node")
.attr("transform", function(d) {
return "translate(" + source.y0 + "," + source.x0 + ")";
})
.on('click', click);
//lisakov modified for getting colors from json
nodeEnter.append("circle")
.attr("r", function(d) { return d.radius; })
.style("stroke", function(d) { return d.granica; })
.style("fill", function(d) { return d.zapolnenie; });
// bilo tak
// nodeEnter.append("circle")
// .attr('class', 'nodeCircle')
// .attr("r", 0)
// .style("fill", function(d) {
// return d._children ? "lightsteelblue" : "#fff"; });
nodeEnter.append("text")
//.attr("x", function(d) { //lisakov probably it is an odd function. This -10 and 10 doesn't do anything
//return d.children || d._children ?
//(d.radius + 4) * -1 : d.radius + 4 }) //lisakov this line for name placement regarding his circle's radius
//return d.children || d._children ? -10 : 10; }) // lisakov tak bilo
//return d.children || d._children ? -10 : 10; }) //lisakov probably it is odd line
.attr("dy", "-.05em")
//.attr('class', 'nodeText')
//.style("stroke", function(d) { return d.granica; })
.style("fill", function(d) { return d.text_color; })
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start";
})
.text(function(d) { return d.name; })
.style("fill-opacity", 0);
//lisakov zakommentil eto nado dlya smeni rodileley
// phantom node to give us mouseover in a radius around it
// nodeEnter.append("circle")
// .attr('class', 'ghostCircle')
// .attr("r", 30)
// .attr("opacity", 0.2) // change this to zero to hide the target area
// .style("fill", "red")
// .attr('pointer-events', 'mouseover')
// .on("mouseover", function(node) {
// overCircle(node);
// })
// .on("mouseout", function(node) {
// outCircle(node);
// });
// Update the text to reflect whether node has children or not.
node.select('text')
//.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("x", function(d) { return d.children || d._children ? -10 : -10; })
//.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "end"; }) //lisakov place all guys to the left of the circle
.text(function(d) { return d.name; });
// Change the circle fill depending on whether it has children and is collapsed
// lisakov trying to get color from json
node.select("circle")
.attr("r", function(d) { return d.radius; })
.style("stroke", function(d) { return d.granica; })
.style("fill", function(d) {
return d._children ? "#FFC576" : "white";});
//lisakov a kak zafiga4it peremennie tuda
// Transition nodes to their new position.
var nodeUpdate = node.transition()
.duration(duration)
.attr("transform", function(d) {
return "translate(" + d.y + "," + d.x + ")";
});
// Fade the text in
nodeUpdate.select("text")
.style("fill-opacity", 1);
// Transition exiting nodes to the parent's new position.
var nodeExit = node.exit().transition()
.duration(duration)
.attr("transform", function(d) {
return "translate(" + source.y + "," + source.x + ")";
})
.remove();
nodeExit.select("circle")
.attr("r", 0);
nodeExit.select("text")
.style("fill-opacity", 0);
// Update the links…
var link = svgGroup.selectAll("path.link")
.data(links, function(d) {
return d.target.id;
});
// Enter any new links at the parent's previous position.
//lisakov color links
// link.enter().insert("path", "g")
// .attr("class", "link")
// .attr("d", diagonal);
//
// link.enter().insert("path", "g")
// .attr("class", "link")
// .style("stroke", function(d) { return d.target.liniya; })
// .attr("d", diagonal);
//links bilo tak
link.enter().insert("path", "g")
.attr("class", "link")
.style("stroke", function(d) { return d.target.liniya; })
.attr("d", function(d) {
var o = {
x: source.x0,
y: source.y0
};
return diagonal({
source: o,
target: o
});
});
//links bilo tak
// link.enter().insert("path", "g")
// .attr("class", "link")
// .attr("d", function(d) {
// var o = {
// x: source.x0,
// y: source.y0
// };
// return diagonal({
// source: o,
// target: o
// });
// });
// Transition links to their new position.
link.transition()
.duration(duration)
.attr("d", diagonal);
// Transition exiting nodes to the parent's new position.
link.exit().transition()
.duration(duration)
.attr("d", function(d) {
var o = {
x: source.x,
y: source.y
};
return diagonal({
source: o,
target: o
});
})
.remove();
// Stash the old positions for transition.
nodes.forEach(function(d) {
d.x0 = d.x;
d.y0 = d.y;
});
}
// Append a group which holds all nodes and which the zoom Listener can act upon.
var svgGroup = baseSvg.append("g");
// Define the root
root = treeData;
root.x0 = viewerHeight / 2;
root.y0 = 0;
// Layout the tree initially and center on the root node.
//update(root);
//centerNode(root);
// lisakov zoom onpageload
function liscenterNode(source) {
scale = zoomListener.scale();
x = -source.y0;
y = -source.x0;
x = x * scale + viewerWidth / 4; // lisakov put first node to left part of screen, not to the center (divide by 25 or smth like this).
y = y * scale + viewerHeight / 2;
d3.select('g').transition()
.duration(duration)
.attr("transform", "translate(" + x + "," + y + ")scale(" + scale + ")");
zoomListener.scale(scale);
zoomListener.translate([x, y]);
}
root.children.forEach(collapse);
update(root);
liscenterNode(root);
});
<!DOCTYPE html>
<meta charset="utf-8">
<style type="text/css">
.node {
cursor: pointer;
}
.overlay{
background-color:#ffffff;
}
.node circle {
fill: #0055ff;
stroke: #bc5723;
stroke-width: 1.9px;
}
.node text {
font-size:12px;
font-family:sans-serif;
}
.link {
fill: none;
stroke: #ccc;
stroke-width: 0.9px;
}
.templink {
fill: none;
stroke: red;
stroke-width: 3px;
}
.ghostCircle.show{
display:block;
}
.ghostCircle, .activeDrag .ghostCircle{
display: none;
}
</style>
<script src="jquery-1.10.2.min.js"></script>
<script src="d3.js" charset="utf-8"></script>
<script src="dndTree.js"></script>
<body>
<div id="tree-container">
<p style="position: fixed; top: 0px; left: 30px; font-size: 11pt; background: white;"> Масштабируйте колёсиком; перемещайтёсь, перетаскивая фон.<br> Щёлкните на Рюрика.</p>
<p style="position: fixed; top: 0px; left: 657px; font-size: 10pt; background: white; z-index: 1;"><a href="http://lisakov.com/blog/2014/12/02/rurik-genealogy/" target ="_blank">О странице</a></p>
</div>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-56269876-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery-1.10.2.min.map
*/
(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
#! /usr/bin/env python
#coding=utf8
'''Routine to create *.json file from data file source.data (containing just tabbed names)'''
import os,shutil,glob,sys,string,re
import fileinput
### Note you need python 3
### and last guy in your file will be invisible, but he should be indented like one before him
### and first one too
### REPLACE PATHES TO YOURS
source_file = '/home/slisakov/Documents/sites/tree/source.data'
output_file = '/home/slisakov/Documents/sites/tree/py_generated.json'
### what is your tabstop value?
tabstop = 4
### declare list with names
rebyata=[]
### declare list with offset values
shift_list=[]
with open(source_file, 'r') as f:
for line in f:
if not re.search(r'#', line) and not line in ['\n', '\r\n']: # ignore hash comments and empty lines (whole line with hash in ANY place would be considered as commented.)
line = line.rstrip('\n') #cut out newline sign at the end of the lines
shift = len(line) - len(line.lstrip()) #count how much leading spaces there are
shift_list.append(shift) #add shift value to list with shift values
imya = line.strip() #cut out leading spaces and set name of a guy = imya
rebyata.append(imya) #add name of a guy to the list with names
lastlineshift = shift #put shift value at the last line into memory. We will need it later
print(lastlineshift) #just to see smth.
### In my example I need to have two root nodes. I achieve it by making first real root invisible, the same color as background (white)
json_defaults_for_root = '{ "name": "", "radius": 1, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white", "children": ['
json_defaults = '", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" '
json_invisible = '{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" }'
### open file for writing
with open (output_file, 'w+') as f1:
for i in range( len(rebyata) - 1 ):
###for the very first line print (make this first guy invisible):
if i == 0:
print (json_defaults_for_root, file=f1)
else:
if shift_list[i+1] == shift_list[i]: # if next guy shifted as current he considered as a brother, then write folliwing line to file
print( shift_list[i]*' ' + '{ "name": "' + rebyata[i] + json_defaults + '},', file=f1 )
if shift_list[i+1] - shift_list[i] == tabstop : # if next guy shifted right, consider him as a son of a current guy
print( shift_list[i]*' ' + '{ "name": "' + rebyata[i] + json_defaults + ', "children": [', file=f1 )
for j in range (1,22):
if shift_list[i+1] - shift_list[i] == -tabstop*j: # if next guy shifted to the left for 1,2,3,4... tabstops, add corresponding amount of ] and }.
print(shift_list[i]*' ' + '{ "name": "' + rebyata[i] + json_defaults + '}' + j * ' ] }' + ',', file=f1)
### open created file and delete last comma
with open (output_file, 'rb+') as f2:
f2.seek(-2, os.SEEK_END)
f2.truncate()
### open created file and add necessary amount of ]} brackets. Note that the mode is 'a+' which means append to a file
with open (output_file, 'a+') as f3:
print ( ' ' + int(lastlineshift/tabstop )* ']}', file=f3)
### set all colors for persons called "invisible" to white.
for line in fileinput.input(output_file, inplace=True):
if re.search(r'invisible', line):
print (re.sub(r'{.*}', json_invisible, line), end="")
else:
print(line, end="")
#print(line.replace('{.*}', 'white'), end='') # а как заменить black на white и gray на white???
### make lines to following guys invisible:
for line in fileinput.input(output_file, inplace=True):
if re.search(r'"Рюрик"', line) or re.search(r'Вещий Олег', line) or re.search(r'Ольга', line):
print (re.sub(r'"liniya": "[^"]*"', '"liniya": "white"', line), end="")
else:
print(line, end="")
### make Rurik bigger
for line in fileinput.input(output_file, inplace=True):
if re.search(r'"Рюрик"', line):
print (re.sub(r'"radius": \d', '"radius": 7', line), end="")
else:
print(line, end="")
### paint lines to IVAN THE TERRIBLE ancestors purple
for line in fileinput.input(output_file, inplace=True):
if re.search(r'"Игорь"', line) or re.search(r'Святослав Игоревич', line) or re.search(r'Владимир Красное Солнышко', line) or re.search(r'Ярослав Мудрый', line) or re.search(r'"Всеволод Ярославич"', line) or re.search(r'Мономах', line) or re.search(r'Долгорукий', line) or re.search(r'Гнездо', line) or re.search(r'Ярослав Владимирский', line) or re.search(r'Александр Невский', line) or re.search(r'св. Даниил, Москва', line) or re.search(r'Калита', line) or re.search(r'Иван II Красный', line) or re.search(r'Дмитрий Донской', line) or re.search(r'Василий I Дмитриевич', line) or re.search(r'Василий II Тёмный', line) or re.search(r'Иван III Великий', line) or re.search(r'Василий III', line) or re.search(r'Грозный', line):
print (re.sub(r'"liniya": "[^"]*"', '"liniya": "purple"', line), end="")
else:
print(line, end="")
ivan = vasiliy = vasilko = vsevolod = vsevolodko = rogvolod = svyatoslav = rostislav = bryachislav = vyacheslav = vladimir = yaroslav = rurik = 0
### count name occurences and print it. Just for info
for line in fileinput.input(output_file, inplace=True):
if re.search(r'"Иван ', line):
print(line, end="")
ivan+=1
elif re.search(r'"Василий ', line):
print(line, end="")
vasiliy+=1
elif re.search(r'"Василько ', line):
print(line, end="")
vasilko+=1
elif re.search(r'"Владимир ', line):
print(line, end="")
vladimir+=1
elif re.search(r'"Святослав ', line):
print(line, end="")
svyatoslav+=1
elif re.search(r'"Ростислав ', line):
print(line, end="")
rostislav+=1
elif re.search(r'"Всеволод ', line):
print(line, end="")
vsevolod+=1
elif re.search(r'"Брячислав ', line):
print(line, end="")
bryachislav+=1
elif re.search(r'"Ярослав ', line):
print(line, end="")
yaroslav+=1
elif re.search(r'"Рюрик', line):
print(line, end="")
rurik+=1
else:
print (line, end="")
print('ivan = ', ivan)
print('vasiliy = ', vasiliy)
print('vasilko = ', vasilko)
print('svyatoslav = ', svyatoslav)
print('rostislav = ', rostislav)
print('vladimir = ', vladimir)
print('vsevolod = ', vsevolod)
print('bryachislav = ', bryachislav)
print('yaroslav = ', yaroslav)
print('rurik = ', rurik)
{ "name": "", "radius": 1, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white", "children": [
{ "name": "Вещий Олег", "radius": 6, "granica": "#bc5729", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "Рюрик", "radius": 7, "granica": "#bc5729", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ольга, жена Игоря", "radius": 6, "granica": "#bc5729", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "", "radius": 0, "granica": "white", "liniya": "white", "zapolnenie": "white", "zapolnenie_collapsed": "white", "text_color": "white" },
{ "name": "Игорь", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Игоревич", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярополк Святополчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Олег Древлянский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Красное Солнышко", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Вышеслав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святополк Окаянный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Полоцкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеслав, Полоцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Брячислав, Полоцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеслав Чародей", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Рогволод, Полоцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Рогволод (Василий)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Глеб, Друцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Борис Рогволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеслав Рогволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Рогволодович(?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Глеб Всеславич, Минск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Глеб Ростиславич, Друцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Володарь Глебович, Минск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Володаревич, Минск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Всеволод Глебович, Изяславль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Роман Рогволодович, Друцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Давыд Рогволодович, Полоцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Брячислав, Изяславль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Микула Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеслав, Логожск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Володша Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Брячислав Володшевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Изяслав Брячиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василько Брячиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Володшевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Ростислав, Лукомльск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Вячеслав Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Роман, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Святослав, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василько Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеслав, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Брячислав, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василько, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Брячислав, Витебск.", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Константин Безрукий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Изяслав, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Изяслав Изяславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василько, Витебск?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярослав, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Всеслав Брячиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Изяслав Василькович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод, Гродно", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Вячко, Витебск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Давыд Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис, Полоцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Вячко, Кукейносс", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод (Василько?), Герсик", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Войцех", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] } ] } ] },
{ "name": "Ярослав Мудрый", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Илья Новгородский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Новгородский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Галицкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Рюрик, Перемышль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Володарь Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Володаревич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Берладник", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Владимир Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярослав Осмомысл", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир, Галич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Олег Настасьич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Василько, Теребовль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Василькович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав Василькович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Изяслав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Мстислав Новгородский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Брестский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святополк, Киев", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярослав Волынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Вячеслав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий, Туров", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван, Туров", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дети?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святополк, Пинск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир, Пинск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав, Пинск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярослав, Клецк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб (Михаил), Дубровица", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр (или А. внук Г.?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярополк, Гродно", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Брячислав Святополчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Святополчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Святополчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярополк Волынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярослав Брестский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Вячеслав Ярополчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Святослав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Глеб Новгородский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Роман Тмутараканский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Давыд Черниговский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Вщижский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Изяслав Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод Давыдович ?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Святоша", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Олег Гориславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеволод Ольгович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Олег, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Давыд, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владислав Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Константин?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Всеволод Чёрмный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "св. Михаил Черниговский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав, бан Мачвы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Бела, бан Мачвы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил, бан Босны", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Кто-то Асень?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Роман Старый Брянский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "св. Олег, Брянск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил, Брянск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Александр?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Глуховский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Роман, Новосиль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Белёвский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Белёвский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Лев Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий, Новосиль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор, Новосиль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил, Воротынск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Алексей Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Дмитрий Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Александр Воротынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Дмитрий Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Юрий Чёрный Одоевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Одоевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Одоевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Одоевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Кривой Одоевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий Юрьевич?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Даниил Романович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Романович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Степан Романович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Мстислав Карачевский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Тит, Козельск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Карачевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Титович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Титович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Титович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святослав Карачевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Пантелеймон, Звенигород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Пантелеймонович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей (Андриан), Звенигород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Болховский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Юрий Тарусский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеволод Орехва, Тарусский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Конинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Мышецкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Толстая Голова, Волконский (?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Тарусский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Константин Конинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Конинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Тарусский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Мстислав Тарусский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис Спажский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Спажский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Константин Юрьевич Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Семён Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Никита Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Ноготковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Курлятевы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий Косой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Курлятев-Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Курлятев-Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Стригины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Ярославовы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Нагие", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Телепневы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Михаил Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Туренины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Репнины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Шафыревы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Владимир Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Лыковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Кашины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Пенинские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Щепины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Глеб Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Оболенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Долгоруковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Щербатовы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Тростенские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] },
{ "name": "Андрей, Чернигов?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Владимир, Вщижск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб, Чернигов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав, Чернигов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярослав Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав, Вышгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярополк Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Игорь Ольгович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб Ольгович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Ольгович, Чернигов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Олег, Новгород-Северский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав, Рыльск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Игорь (Слово о Полку)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир, Путивль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Олег Игоревич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав, Перемышль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Роман, Звенигород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав, Теребовль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Всеволод Буй-Тур", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав, Трубчевск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Ярослав Черниговский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Муромский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Давыд, Пронск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Игорь, Рязань", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий, Муром", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Ростислав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей, Елецк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб, Рязань", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Роман, Рязань", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Игорь, Рязань", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир, Пронск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод, Пронск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав, Пронск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярослав, Рязань", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Юрий Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "св. Михаил Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Ярославич?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Всеволод Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Мономах", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Мстислав Великий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеволод-Гавриил", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир (Георгий)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Изяслав (Волынский?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Мстислав, Волынь", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Роман Мстиславич Галицкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Даниил Романович Галицкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ираклий Даниилович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Лев Даниилович ~1228~1301", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Львович Белзский ~1252~1308", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Юрьевич Галицкий, †1323", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Лев II Юрьевич, †~1323", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Львович, †1340", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Роман Даниилович, ~1230~1260", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Романович, Друцк", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Михайлович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей † 1399", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Семён Михайлович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий †~1399", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Подберезский † 1399", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён †>1422", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Большой Баба ~1400>1436", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Бабич ~1410>1446", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Семён", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Друцкие-Соколинские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Фёдор Конопля", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Конопли-Соколинские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Друцкие-Озерецкие", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий Щербатый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Бабич ~1410~1442", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Прихабский ~1440<1515", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Друцкие-Прихабские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василий Бабич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Бабичевы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Бабич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Богдан Бабич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Бабич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Бабич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Дмитрий Зубравицкий ~1400>1444", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Красный ~1410~1448", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Красный ~1450>1516", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Григорий Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Григорьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Друцкие-Любецкие", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Михаил Болобан †~1435", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Путята ~1390>1440", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Путятич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Шишевский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Толочинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василий Путятич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Друцкие-Горские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Дмитрий Путятич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Путятич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Никита", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Путятины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] },
{ "name": "Иван Киндир, † 1399", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Александр Подберезский, † 1399", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Василько Романович Слонимский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Шварн Даниилович Холмский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Даниилович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Даниил Мстиславич, † 1280", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василько Волынский 1203~1269", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Волынский ~1250-1288", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Всеволод Мстиславич >1155~1195", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Волынский <1195>1234", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Роман Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Всеволод Всеволодович Червенский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святослав Мстиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Мстиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярослав Изяславич ~1132>1174", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Игнварь Луцкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Изяслав Ингваревич, † 1223", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Ингваревич, † 1223", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярослав Ингваревич, †>1229", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис Ярославич, род.>1234", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Владимир Ингваревич, †>1229", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Всеволод Дорогобужский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Шумский †1195", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Немой, <1180-1226", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Луцкий, † 1227", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Ярополк Шумский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святополк Новгородский↓?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав Смоленский↑?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Роман, Киев", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярополк †>1177", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Старый <1177-1223", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Смоленский ~1218~1239", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Мстиславич?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод Смоленский <1213-1249", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав Мстиславич?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Глеб Ростиславич <1249-1278", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр <1278-1313", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий, † 1314", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Смоленский, <1313-1359", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Святослав Иванович↑?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Глеб Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Глебович, ум.>1433", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Дмитриевич Манько", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Иванович Манчич, ум.<1528", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Иванович Манчич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Дмитриевич Шах", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Шахович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Соломерецкие", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Юрий Коркодын", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Коркодыновы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] },
{ "name": "Юрий Святославич, ум. 1407", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор, ум. 1420", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Александр Дашек", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Дашковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Вяземский (Порховский?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Порховские?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Васильевич Кропотка", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Кропоткины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Василий Селеховский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Селеховские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василий Брянский, ум. 1314", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий, ум. 1300", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Роман Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Романович, ум.>1341", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святослав Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Долгая Рука", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Вяземский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Вяземские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий Вяземский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Вяземские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Вяземский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Иван Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Святославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Монастырь", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Монастырёвы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Мусоргские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Оладьины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Циплятевы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Бурухины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Всеволод Глебович, ум.>1314", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Всеволожи", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Заболотские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Михаил Ростиславич, ум. 1279", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Ростиславич Чёрный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Ростиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Фёдорович Нетша", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] } ] },
{ "name": "Рюрик, Киев", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Давыд, Смоленск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Владимир Мстиславич, 1132-1171", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Мстислав, Дорогобужск, <1171>1203", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярослав, Новгород, <1182>1207", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Изяслав Великолуцкий, † 1198", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ростислав Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Каневский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ростислав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Изяслав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярополк Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василько (?)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Святослав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Вячеслав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Долгорукий", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ростислав Новгородский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Мстислав Безокий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярополк, Владимир", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Боголюбский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Изяслав Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб, Владимир", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван, Курск", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб, Переяславль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Изяслав Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Борис, Белгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василько, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Ярослав Красный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Ярослав Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав, Юрьев", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил, Владимир", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Всеволод Большое Гнездо", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Константин, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василько Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис, Ростов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий, Ростов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Константин, Ростов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий, Ростов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Ростово-Усретинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Ростово-Усретинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Ростово-Усретинский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Немой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Семён Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Фёдор Голеня", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Голенин-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Голенин-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Иванович Голенин-Ростовский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Голенин-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Голенин-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Фёдор Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Щепа, Псков", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Щепин-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "кн. Щепины-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Горбатый?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Иван Большой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Меньшой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Русан Фёдорович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Приимок", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Приимков-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Приимков-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Дмитриевич Гвоздь", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Большой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Григорий Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Лев Балымаж", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Меньшой Баташ", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Дмитриевич Бахтеяр", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Немой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Фёдор Фёдорович?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Юрий Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Борис Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Константин Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Глеб Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Александр Константинович Ростово-Борисоглебский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Ростово-Борисоглебский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Брюхатый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Хохолок", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Катырь", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Катырев-Ростовский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Пётр Катырев-Ростовский?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Александр Хохолок", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Александрович Горбатый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Буйнос", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Буйносовы-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Дмитрий Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Ростово-Борисоглебский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий, Псков (наместник)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Пётр Бессчастный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Александр Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван-Ян Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Иванович Губка", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Губкины-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Иванович Тё?мка", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Тёмкины-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Яновы-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Пётр Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Фёдор Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий-Варсонофий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Иванович Долгий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Пужбольские-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Александр Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Владимир Константинович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Константин Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Владимирович Бычок", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Ластка", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Касатка", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Касаткины-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Лобан", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Лобановы-Ростовские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван-Ян Александрович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Александрович Голубой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Пётр Голубой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Дмитрий Иванович Бритый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Бычок 2", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Волох", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] } ] } ] },
{ "name": "Василий Борисович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Глеб Василькович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Демьян Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Михайлович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Роман Михайлович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Романович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Константин Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василий Романович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Давид Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Роман Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Романович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Гавриил Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Белосельские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Иван Романович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Романович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Михаил Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Андожские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Вадбольские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Чесноковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] },
{ "name": "Афанасий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Шелешпанские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Угольские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Калитины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Семён Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Согорские (Сугорские)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Фёдор Семёнович Дурак", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Давид Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Кемские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Фуниковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Нащокины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Дмитрий Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Сугорские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Константин Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Ухтомские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Князья Угримовы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Пенкины", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Волковы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Князья Холуевы", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Князья Карголомские", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Фёдор Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Фёдорович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Константин Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Василий Глебович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Борис Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб Всеволодович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Владимирский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярослав Владимирский", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "св. Александр Невский", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Большой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Меньшой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей, Кострома", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис, Кострома", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "св. Даниил, Москва", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий, Москва", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван I Калита", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Семён Гордый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Даниил Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Семёнович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Даниил Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван II Красный", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Донской", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Даниил Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий I Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Даниил Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий II Тёмный", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий Большой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван III Великий", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Молодой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Внук", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Василий III", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван IV Грозный", "radius": 6, "granica": "#bc5729", "liniya": "purple", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Дмитрий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Царевич Дмитрий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Юрий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Юрьевич?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Георгий?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Юрий, Дмитров", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Жилка, Углич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён, Калуга", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Старицкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Юрий Молодой, Дмитров", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Большой, Углич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "св. Иван, Углич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Борис Волоцкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Фёдор Волоцкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Рузский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Меньшой, Вологда", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Юрий, Звенигород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Косой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Шемяка (Большой)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "св. Дмитрий Красный", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Юрьевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Семён Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Можайский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Можайский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Тулуп", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Михаил Верейский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Удалой", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Михайлович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Пётр Дмитровский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин, Углич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Малый, Звенигород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Андрей Серпуховской", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Владимир Храбрый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Серпуховской", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Боровский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярослав Малоярославецкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Ярославич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Иван Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Николай Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Юрий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Иванович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Иван Васильевич? ещё один?", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий Васильевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Василий Углицкий", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Фёдор Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Младший Серпуховской", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Александр Даниилович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Афанасий, Новгород", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Борис, Кострома", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Андрей Ярославич, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Юрий, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Михаил, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Василий, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Александр, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Константин, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Андрей, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий, Суздаль", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Василий Кирдяпа Шуйский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Семён Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван Дмитриевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Борис Нижегородский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Дмитрий Ноготь (безудельный)", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] } ] },
{ "name": "Владимир, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав, Владимир", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Иван, Стародуб", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Роман Волынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Андрей Добрый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Владимир Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Ярополк Андреевич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] },
{ "name": "Ростислав Переяславский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Вячеслав Смоленский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис Вячеславич, Чернигов", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Игорь Волынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Давыд Волынский", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Всеволодко Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Борис Всеволодкович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Глеб Всеволодкович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Всеволодкович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Игорь Давыдович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] } ] } ] },
{ "name": "Всеволод Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Мстислав Храбрый", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" , "children": [
{ "name": "Евстафий Мстиславич", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ] },
{ "name": "Станислав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Судислав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Святослав Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "св. Борис Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "св. Глеб Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" },
{ "name": "Позвизд Владимирович", "radius": 6, "granica": "#bc5729", "liniya": "#ccc", "zapolnenie": "white", "zapolnenie_collapsed": "lightsteelblue", "text_color": "black" } ]}]}]}]}]}
Family tree for the Rurikovichi from Rurik to Ivan the Terrible, 9–16 centuries.
json_generator.py is a python script which generates py_generated.json file from the source.data file.
Source.data file contains list of Rurik's descendants.
This file is easy to fill: each person in the same generation has the same amount of leading spaces.
#Rurik
# Igor Rurikovich
# Svyatoslav Igorevich
# Yaropolk
# Oleg Drevlyanskiy
# Vladimir Krasnoe Solnishko
### empty lines and commented like these are not taken into account
Серёга Лисаков
Вещий Олег
invisible
invisible
invisible
Рюрик
Ольга, жена Игоря
invisible
invisible
invisible
Игорь
Святослав Игоревич
Ярополк Святополчич
Олег Древлянский
Владимир Красное Солнышко
Вышеслав Владимирович
Святополк Окаянный
Изяслав Полоцкий
Всеслав, Полоцк
Брячислав, Полоцк
Всеслав Чародей
Рогволод, Полоцк
Рогволод (Василий)
Глеб, Друцк
Борис Рогволодович
Всеслав Рогволодович
Иван Рогволодович(?)
Глеб Всеславич, Минск
Ростислав Глебович
Святослав Ростиславич
Ростислав Святославич
Глеб Ростиславич, Друцк
Володарь Глебович, Минск
Владимир Володаревич, Минск
Всеволод Глебович, Изяславль
Изяслав Всеволодович
Роман Рогволодович, Друцк
Давыд Рогволодович, Полоцк
Брячислав, Изяславль
Микула Давыдович
Всеслав, Логожск
Володша Давыдович
Брячислав Володшевич
Изяслав Брячиславич
Василько Брячиславич
Андрей Володшевич
Ростислав, Лукомльск
Вячеслав Ростиславич
Роман, Витебск
Святослав, Витебск
Василько Святославич
Всеслав, Витебск
Брячислав, Витебск
Василько, Витебск
Брячислав, Витебск.
Константин Безрукий
Михаил Константинович
Изяслав, Витебск
Изяслав Изяславич
Василько, Витебск?
Ярослав, Витебск
Всеслав Брячиславич
Изяслав Василькович
Всеволод, Гродно
Вячко, Витебск
Давыд Святославич
Борис, Полоцк
Вячко, Кукейносс
Всеволод (Василько?), Герсик
Владимир Войцех
Ярослав Мудрый
Илья Новгородский?
Владимир Новгородский
Ростислав Галицкий
Рюрик, Перемышль
Володарь Ростиславич
Ростислав Володаревич
Иван Берладник
Ростислав Иванович
Владимир Ростиславич
Ярослав Осмомысл
Владимир, Галич
Олег Настасьич
Василько, Теребовль
Иван Василькович
Ростислав Василькович
Изяслав Ярославич
Мстислав Новгородский
Ростислав Брестский
Святополк, Киев
Ярослав Волынский
Вячеслав Ярославич
Юрий, Туров
Иван, Туров
Дети?
Святополк, Пинск
Владимир, Пинск
Ростислав, Пинск
Ярослав, Клецк
Глеб (Михаил), Дубровица
Александр (или А. внук Г.?)
Ярополк, Гродно
Брячислав Святополчич
Изяслав Святополчич
Мстислав Святополчич
Ярополк Волынский
Ярослав Брестский
Вячеслав Ярополчич
Святослав Ярославич
Глеб Новгородский
Роман Тмутараканский
Давыд Черниговский
Владимир Давыдович
Святослав Вщижский
Изяслав Давыдович
Всеволод Давыдович ?
Святослав Святоша
Ростислав Давыдович
Олег Гориславич
Всеволод Ольгович
Святослав Всеволодович
Олег, Стародуб
Давыд, Стародуб
Владислав Давыдович
Мстислав Давыдович
Константин Давыдович
Константин?
Всеволод Чёрмный
св. Михаил Черниговский
Ростислав, бан Мачвы
Бела, бан Мачвы
Михаил, бан Босны
Кто-то Асень?
Роман Старый Брянский?
св. Олег, Брянск
Михаил, Брянск
Александр?
Семён Глуховский?
Роман, Новосиль
Василий Белёвский
Михаил Белёвский?
Лев Воротынский
Василий, Новосиль
Фёдор, Новосиль
Михаил, Воротынск
Иван Воротынский
Владимир Воротынский
Михаил Иванович
Иван Воротынский
Алексей Воротынский
Дмитрий Воротынский
Александр Воротынский
Дмитрий Фёдорович
Семён Фёдорович
Юрий Чёрный Одоевский
Иван Одоевский
Фёдор Одоевский
Михаил Одоевский
Василий Кривой Одоевский
Василий Юрьевич?
Фёдор Юрьевич
Семён Юрьевич
Даниил Романович?
Семён Романович?
Степан Романович?
Мстислав Карачевский?
Тит, Козельск
Святослав Карачевский
Василий Титович
Фёдор Титович?
Иван Титович
Святослав Карачевский
Пантелеймон, Звенигород
Василий Пантелеймонович
Андрей (Андриан), Звенигород
Фёдор Андреевич
Иван Болховский
Юрий Тарусский?
Всеволод Орехва, Тарусский
Семён Конинский
Михаил Мышецкий
Иван Толстая Голова, Волконский (?)
Фёдор Тарусский
Константин Конинский
Иван Конинский
Фёдор Тарусский
Мстислав Тарусский
Борис Спажский
Михаил Спажский
Константин Юрьевич Оболенский
Семён Оболенский
Иван Оболенский
Никита Иванович
Князья Ноготковы
Князья Курлятевы
Василий Косой
Иван Курля Оболенский?
Михаил Курлятев-Оболенский
Константин Курлятев-Оболенский
Дмитрий Курлятев-Оболенский
Князья Стригины
Князья Ярославовы
Князья Нагие
Князья Телепневы
Михаил Иванович
Князья Туренины
Князья Репнины
Князья Шафыревы
Владимир Иванович
Князья Лыковы
Князья Кашины
Князья Пенинские
Семён Иванович
Князья Щепины
Глеб Иванович
Андрей Оболенский
Князья Долгоруковы
Князья Щербатовы
Князья Тростенские
Андрей, Чернигов?
Владимир, Вщижск
Глеб, Чернигов
Мстислав, Чернигов
Ярослав Всеволодович
Ростислав, Вышгород
Ярополк Ярославич
Игорь Ольгович
Глеб Ольгович
Святослав Ольгович, Чернигов
Олег, Новгород-Северский
Святослав, Рыльск
Игорь (Слово о Полку)
Владимир, Путивль
Олег Игоревич
Святослав, Перемышль
Роман, Звенигород
Ростислав, Теребовль
Всеволод Буй-Тур
Святослав, Трубчевск
Ярослав Черниговский
Юрий Муромский
Святослав Ярославич
Давыд, Пронск
Игорь, Рязань
Владимир Святославич
Юрий, Муром
Ростислав Ярославич
Андрей, Елецк
Глеб, Рязань
Андрей Глебович
Роман, Рязань
Игорь, Рязань
Владимир, Пронск
Всеволод, Пронск
Святослав, Пронск
Ярослав, Рязань
Юрий Ростиславич
св. Михаил Ярославич
Фёдор Ярославич?
Всеволод Ярославич
Владимир Мономах
Мстислав Великий
Всеволод-Гавриил
Иван Всеволодович
Владимир (Георгий)
Изяслав (Волынский?)
Мстислав, Волынь
Роман Мстиславич Галицкий
Даниил Романович Галицкий
Ираклий Даниилович?
Лев Даниилович ~1228~1301
Юрий Львович Белзский ~1252~1308
Андрей Юрьевич Галицкий, †1323
Лев II Юрьевич, †~1323
Владимир Львович, †1340
Роман Даниилович, ~1230~1260
Михаил Романович, Друцк
Василий Михайлович
Дмитрий Васильевич
Василий
Андрей † 1399
Семён Михайлович
Дмитрий †~1399
Михаил Подберезский † 1399
Семён †>1422
Иван Большой Баба ~1400>1436
Фёдор Бабич ~1410>1446
Семён
Князья Друцкие-Соколинские
Фёдор Конопля
Князья Конопли-Соколинские
Иван
Князья Друцкие-Озерецкие
Василий Щербатый
Иван Иванович
Семён Иванович
Константин Бабич ~1410~1442
Андрей Прихабский ~1440<1515
Князья Друцкие-Прихабские
Василий Бабич
Князья Бабичевы
Дмитрий
Василий Бабич
Богдан Бабич
Андрей Бабич
Юрий Бабич
Дмитрий Зубравицкий ~1400>1444
Василий Красный ~1410~1448
Иван Красный ~1450>1516
Дмитрий
Григорий Семёнович
Василий Григорьевич
Князья Друцкие-Любецкие
Михаил Болобан †~1435
Иван Путята ~1390>1440
Михаил Путятич
Юрий Шишевский
Василий Толочинский
Василий Путятич
Юрий Васильевич
Дмитрий Юрьевич
Князья Друцкие-Горские
Дмитрий Путятич
Иван Путятич
Никита
Князья Путятины
Иван Киндир, † 1399
Александр Иванович
Александр Подберезский, † 1399
Василько Романович Слонимский
Шварн Даниилович Холмский
Мстислав Даниилович
Даниил Мстиславич, † 1280
Василько Волынский 1203~1269
Владимир Волынский ~1250-1288
Юрий
Всеволод Мстиславич >1155~1195
Александр Волынский <1195>1234
Роман Александрович
Всеволод Всеволодович Червенский
Святослав Мстиславич
Владимир Мстиславич
Ярослав Изяславич ~1132>1174
Игнварь Луцкий
Изяслав Ингваревич, † 1223
Святослав Ингваревич, † 1223
Ярослав Ингваревич, †>1229
Борис Ярославич, род.>1234
Владимир Ингваревич, †>1229
Всеволод Дорогобужский
Изяслав Шумский †1195
Мстислав Немой, <1180-1226
Иван Луцкий, † 1227
Ярополк Шумский
Святополк Новгородский↓?
Ростислав Смоленский↑?
Роман, Киев
Ярополк †>1177
Мстислав Старый <1177-1223
Святослав Смоленский ~1218~1239
Изяслав Мстиславич?
Всеволод Смоленский <1213-1249
Ростислав Мстиславич?
Глеб Ростиславич <1249-1278
Александр <1278-1313
Василий, † 1314
Иван Смоленский, <1313-1359
Святослав Иванович↑?
Глеб Святославич
Дмитрий Глебович, ум.>1433
Иван Дмитриевич Манько
Михаил Иванович Манчич, ум.<1528
Иван Иванович Манчич
Иван Дмитриевич Шах
Андрей Шахович
Князья Соломерецкие
Юрий Коркодын
Князья Коркодыновы
Юрий Святославич, ум. 1407
Фёдор, ум. 1420
Александр Дашек
Князья Дашковы
Иван Вяземский (Порховский?)
Князья Порховские?
Василий Святославич
Дмитрий Васильевич Кропотка
Князья Кропоткины
Василий Селеховский
Князья Селеховские
Василий Брянский, ум. 1314
Дмитрий, ум. 1300
Роман Глебович
Дмитрий Романович, ум.>1341
Святослав Глебович
Владимир Святославич
Андрей Долгая Рука
Фёдор Вяземский
Князья Вяземские
Василий Вяземский
Князья Вяземские
Иван Вяземский
Иван Святославич
Михаил Святославич
Глеб Святославич
Фёдор Святославич
Юрий Святославич
Александр Монастырь
Князья Монастырёвы
Князья Мусоргские
Князья Оладьины
Князья Циплятевы
Князья Бурухины
Всеволод Глебович, ум.>1314
Князья Всеволожи
Князья Заболотские
Михаил Ростиславич, ум. 1279
Фёдор Ростиславич Чёрный
Константин Ростиславич
Фёдор Константинович
Александр Фёдорович Нетша
Рюрик, Киев
Святослав, Новгород
Давыд, Смоленск
Мстислав, Новгород
Владимир Мстиславич, 1132-1171
Мстислав, Дорогобужск, <1171>1203
Ярослав, Новгород, <1182>1207
Изяслав Великолуцкий, † 1198
Ростислав Ярославич
Святослав Каневский
Ростислав Владимирович
Святослав Владимирович
Изяслав Владимирович
Ярополк Владимирович
Василько (?)
Святослав Владимирович
Вячеслав Владимирович
Юрий Долгорукий
Ростислав Новгородский
Мстислав Безокий
Ярополк, Владимир
Андрей Боголюбский
Изяслав Андреевич
Мстислав Андреевич
Юрий, Новгород
Глеб, Владимир
Иван, Курск
Глеб, Переяславль
Владимир Глебович
Изяслав Глебович
Борис, Белгород
Василько, Суздаль
Мстислав, Новгород
Ярослав Красный
Ярослав Юрьевич
Святослав, Юрьев
Михаил, Владимир
Всеволод Большое Гнездо
Константин, Новгород
Василько Ростовский
Борис, Ростов
Дмитрий, Ростов
Александр Дмитриевич
Константин, Ростов
Александр Константинович
Василий, Ростов
Фёдор Ростово-Усретинский
Андрей Ростово-Усретинский
Иван Ростово-Усретинский
Юрий Немой
Семён Юрьевич
Фёдор Голеня
Андрей Голенин-Ростовский
Иван Голенин-Ростовский
Василий Иванович Голенин-Ростовский?
# Пётр
# Фёдор
# Иван Ушатый
# Иван Меньший
Семён Голенин-Ростовский
Андрей Голенин-Ростовский
Фёдор Андреевич
Александр Щепа, Псков
Дмитрий Щепин-Ростовский
кн. Щепины-Ростовские
Семён Горбатый?
Иван Большой
Иван Меньшой
Русан Фёдорович?
Дмитрий Приимок
Фёдор Приимков-Ростовский
Дмитрий Приимков-Ростовский
Дмитрий Дмитриевич
Фёдор Дмитриевич Гвоздь
#Гвоздевы-Ростовские
Иван Дмитриевич
Василий Иванович
#Василий Волк
Семён Большой
Андрей Дмитриевич
Борис Андреевич
Григорий Андреевич
Семён Андреевич
Михаил Андреевич
Лев Балымаж
Семён Меньшой Баташ
Фёдор Дмитриевич Бахтеяр
Иван Немой
Василий Фёдорович
Михаил Фёдорович
Фёдор Фёдорович?
Юрий Андреевич
Константин Андреевич
Михаил Андреевич
Борис Андреевич
Константин Васильевич
Иван Константинович
Андрей Иванович
Фёдор Иванович
Иван Иванович
Глеб Константинович
Василий Константинович
Александр Константинович Ростово-Борисоглебский
Андрей Ростово-Борисоглебский
Иван Брюхатый
Андрей Хохолок
Иван Катырь
Андрей Катырев-Ростовский
Пётр Катырев-Ростовский?
#Михаил Катырев-Ростовский?
#Иван Михайлович Катырев-Ростовский
Александр Хохолок
Фёдор Александрович Горбатый
Иван Буйнос
Буйносовы-Ростовские
Андрей Александрович
Дмитрий Александрович
Дмитрий Андреевич
Фёдор Андреевич
Владимир Ростово-Борисоглебский
Дмитрий, Псков (наместник)
Пётр Бессчастный
Андрей Дмитриевич
Александр Владимирович
Иван-Ян Андреевич
Василий Иванович Губка
Губкины-Ростовские
Иван Иванович Тё?мка
Тёмкины-Ростовские
Семён Иванович
Дмитрий Иванович
Яновы-Ростовские
Пётр Андреевич
Фёдор Александрович
Александр Фёдорович
Иван Александрович
Андрей Иванович
Василий-Варсонофий
Константин Иванович
Иван Иванович Долгий
Пужбольские-Ростовские
Александр Иванович
Владимир Константинович
Константин Владимирович
Иван Владимирович Бычок
Александр Иванович
Василий Ластка
Михаил Касатка
Касаткины-Ростовские
Иван Лобан
Лобановы-Ростовские
Иван-Ян Александрович
Фёдор Александрович Голубой
Александр?
Василий?
Пётр Голубой
Дмитрий Иванович Бритый
Василий Бычок 2
Юрий Дмитриевич
Владимир Волох
Василий Борисович
Глеб Василькович
Демьян Глебович
Михаил Глебович
Фёдор Михайлович
Василий Фёдорович
Роман Михайлович
Фёдор Романович
Иван Фёдорович
Константин Иванович
Василий Романович
Юрий Васильевич
Давид Юрьевич
Роман Юрьевич
Фёдор Романович
Гавриил Фёдорович
Князья Белосельские
Иван Романович
Василий Романович
Андрей Юрьевич
Михаил Андреевич
Князья Андожские
Иван Андреевич
Князья Вадбольские
Князья Чесноковы
Афанасий Васильевич
Князья Шелешпанские
Князья Угольские
Князья Калитины
Семён Васильевич
Владимир Семёнович
Согорские (Сугорские)
Фёдор Семёнович Дурак
Давид Семёнович
Князья Кемские
Князья Фуниковы
Князья Нащокины
Дмитрий Семёнович
Князья Сугорские
Константин Семёнович
Иван Васильевич
Иван Иванович
Князья Ухтомские
Князья Угримовы
Князья Пенкины
Князья Волковы
Князья Холуевы
Князья Карголомские
Фёдор Иванович
Иван Фёдорович
Константин Васильевич
Василий Глебович
Борис Всеволодович
Глеб Всеволодович
Юрий Владимирский
Ярослав Владимирский
Фёдор Ярославич
св. Александр Невский
Василий, Новгород
Дмитрий, Новгород
Александр Дмитриевич
Иван Большой
Иван Меньшой
Андрей, Кострома
Борис, Кострома
Михаил Андреевич
Юрий Андреевич
св. Даниил, Москва
Юрий, Москва
Иван I Калита
Семён Гордый
Василий Семёнович
Константин Семёнович
Даниил Семёнович
Михаил Семёнович
Иван Семёнович
Семён Семёнович
Даниил Иванович
Иван II Красный
Дмитрий Донской
Даниил Дмитриевич
Василий I Дмитриевич
Юрий Васильевич
Иван Васильевич
Даниил Васильевич
Семён Васильевич
Василий II Тёмный
Юрий Большой
Иван III Великий
Иван Молодой
Дмитрий Внук
Василий III
Иван IV Грозный
Дмитрий Иванович
Иван Иванович
Фёдор Иванович
Василий Иванович
Царевич Дмитрий
Юрий Васильевич
Василий Юрьевич?
Георгий?
Юрий, Дмитров
Дмитрий Жилка, Углич
Семён, Калуга
Андрей Старицкий
Владимир Андреевич
Василий Владимирович
Юрий Владимирович
Иван Владимирович
Юрий Молодой, Дмитров
Андрей Большой, Углич
св. Иван, Углич
Дмитрий Андреевич
Семён Васильевич
Борис Волоцкий
Фёдор Волоцкий
Иван Рузский
Андрей Меньшой, Вологда
Юрий, Звенигород
Василий Косой
Дмитрий Шемяка (Большой)
Иван Дмитриевич
Иван Иванович
Василий Иванович
Иван Васильевич
св. Дмитрий Красный
Иван Юрьевич
Семён Дмитриевич
Андрей Можайский
Иван Можайский
Андрей, Стародуб
Семён, Стародуб
Василий Тулуп
Михаил Верейский
Василий Удалой
Иван Михайлович
Пётр Дмитровский
Иван Дмитриевич
Константин, Углич
Иван Малый, Звенигород
Андрей Серпуховской
Иван Андреевич
Владимир Храбрый
Андрей Владимирович
Иван Серпуховской
Семён Боровский
Ярослав Малоярославецкий
Василий Ярославич
Иван Васильевич
Николай Иванович
Юрий Иванович
Фёдор Иванович
Василий Иванович
Иван Васильевич? ещё один?
Андрей Васильевич
Василий Васильевич
Василий Углицкий
Фёдор Владимирович
Андрей Младший Серпуховской
Александр Даниилович
Афанасий, Новгород
Борис, Кострома
Андрей Ярославич, Суздаль
Юрий, Суздаль
Михаил, Суздаль
Василий, Суздаль
Александр, Суздаль
Константин, Суздаль
Андрей, Суздаль
Дмитрий, Суздаль
Василий Кирдяпа Шуйский
Семён Дмитриевич
Иван Дмитриевич
Борис Нижегородский
Дмитрий Ноготь (безудельный)
Владимир, Стародуб
Святослав, Владимир
Иван, Стародуб
Роман Волынский
Андрей Добрый
Владимир Андреевич
Ярополк Андреевич
Ростислав Переяславский
Вячеслав Смоленский
Борис Вячеславич, Чернигов
Игорь Волынский
Давыд Волынский
Всеволодко Давыдович
Борис Всеволодкович
Глеб Всеволодкович
Мстислав Всеволодкович
Игорь Давыдович
Всеволод Владимирович
Мстислав Храбрый
Евстафий Мстиславич
Станислав Владимирович
Судислав Владимирович
Святослав Владимирович
св. Борис Владимирович
св. Глеб Владимирович
Позвизд Владимирович
Лисаков Сергей Неотображаемый
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment