)]}' {"version":3,"sources":["jquery/jquery.js","jquery/post.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,G;AACA,oC;AACA,qB;AACA,E;AACA,qB;AACA,uB;AACA,E;AACA,sE;AACA,iC;AACA,4B;AACA,E;AACA,0B;AACA,G;;AAEA,8B;;AAEA,0E;AACA,kF;AACA,uC;AACA,4E;AACA,wE;AACA,gE;AACA,iD;AACA,oC;AACA,oC;AACA,4B;AACA,kB;AACA,wB;AACA,mE;AACA,K;AACA,wB;AACA,K;AACA,S;AACA,oB;AACA,E;;AAEA,yC;AACA,+E;;AAEA,6D;AACA,4D;AACA,8D;AACA,uB;AACA,E;;AAEA,oB;;AAEA,6B;;AAEA,+B;;AAEA,2B;;AAEA,iC;;AAEA,oB;;AAEA,mC;;AAEA,uC;;AAEA,iB;;;;AAIA,G;AACA,oB;;AAEA,iC;AACA,yC;AACA,uE;AACA,kF;AACA,iD;AACA,G;;AAEA,8B;AACA,kC;AACA,8C;;AAEA,wC;AACA,qB;AACA,6B;;AAEA,qD;AACA,uC;AACA,8B;AACA,G;;AAEA,gC;AACA,4C;AACA,iB;;AAEA,qB;;AAEA,gC;AACA,c;;AAEA,8C;AACA,W;;AAEA,sB;AACA,4B;AACA,G;;AAEA,qD;AACA,sD;AACA,uB;AACA,sB;;AAEA,8C;AACA,0D;;AAEA,8C;AACA,sB;AACA,G;;AAEA,wD;AACA,2C;AACA,+B;;AAEA,2C;AACA,sD;;AAEA,uD;AACA,wB;AACA,6B;;AAEA,wC;AACA,a;AACA,G;;AAEA,4D;AACA,kE;AACA,0B;AACA,mC;AACA,6C;AACA,G;;AAEA,4B;AACA,+D;AACA,yC;AACA,M;AACA,G;;AAEA,oB;AACA,0D;AACA,G;;AAEA,oB;AACA,sB;AACA,G;;AAEA,mB;AACA,uB;AACA,G;;AAEA,oB;AACA,wB;AACA,gC;AACA,gE;AACA,G;;AAEA,kB;AACA,mD;AACA,G;;AAEA,0B;AACA,6D;AACA,Y;AACA,uB;AACA,0B;AACA,E;;AAEA,+C;AACA,kD;AACA,8B;AACA,Q;AACA,4B;AACA,e;;AAEA,gC;AACA,qC;AACA,gB;;AAEA,oC;AACA,gC;AACA,M;AACA,E;;AAEA,4E;AACA,kE;AACA,c;AACA,E;;AAEA,uD;AACA,sB;AACA,gB;AACA,M;AACA,E;;AAEA,4B;AACA,6C;AACA,6C;AACA,4B;AACA,4B;AACA,yB;AACA,2B;;AAEA,gC;AACA,4B;AACA,c;AACA,K;;AAEA,uD;AACA,mG;AACA,yB;AACA,0B;AACA,oD;;AAEA,a;AACA,0D;AACA,M;;AAEA,+C;AACA,yD;;AAEA,sC;AACA,sC;AACA,2B;AACA,K;AACA,I;AACA,G;AACA,E;;AAEA,8B;AACA,e;AACA,E;;AAEA,e;AACA,8C;AACA,sE;;AAEA,mD;AACA,e;;AAEA,yB;AACA,yB;AACA,G;;AAEA,qB;;AAEA,4D;AACA,2D;AACA,sD;AACA,8B;AACA,yC;AACA,G;;AAEA,4C;AACA,sC;AACA,G;;AAEA,4B;AACA,4B;AACA,0C;AACA,G;;AAEA,6B;AACA,sE;AACA,qF;AACA,yC;AACA,iE;AACA,sE;AACA,G;;AAEA,iC;AACA,W;AACA,uB;AACA,gB;AACA,G;AACA,c;AACA,G;;AAEA,iC;AACA,U;;AAEA,uB;AACA,mF;AACA,4E;AACA,0F;AACA,gB;AACA,G;;AAEA,O;AACA,iD;AACA,0B;AACA,uC;AACA,gE;AACA,iB;AACA,I;AACA,iB;AACA,+D;AACA,gB;AACA,G;;AAEA,kB;AACA,sE;AACA,0B;AACA,uB;AACA,mC;AACA,I;AACA,G;;AAEA,2D;AACA,qD;AACA,uB;;AAEA,sD;AACA,G;;AAEA,wB;AACA,sB;AACA,mB;AACA,G;AACA,+D;AACA,iD;AACA,c;AACA,G;;AAEA,0C;AACA,iD;AACA,2F;AACA,+B;AACA,sC;AACA,4C;AACA,4D;AACA,mC;AACA,4C;AACA,0C;AACA,e;AACA,G;AACA,G;;AAEA,iE;AACA,wD;AACA,gC;AACA,8E;AACA,G;;AAEA,mC;AACA,6E;AACA,G;;AAEA,mC;AACA,wC;AACA,Y;AACA,S;AACA,uB;AACA,gC;;AAEA,e;AACA,mB;AACA,+B;AACA,8C;;AAEA,6B;AACA,Y;AACA,M;AACA,K;AACA,W;AACA,sB;AACA,8C;;AAEA,6B;AACA,Y;AACA,M;AACA,K;AACA,I;;AAEA,0D;AACA,U;AACA,mB;AACA,+B;AACA,oD;;AAEA,6B;AACA,Y;AACA,M;AACA,K;AACA,W;AACA,sB;AACA,oD;;AAEA,6B;AACA,Y;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,a;AACA,G;;AAEA,8B;AACA,yB;AACA,uB;AACA,O;AACA,sC;AACA,G;;AAEA,sC;AACA,sC;AACA,0B;;AAEA,sB;AACA,sC;AACA,sB;AACA,8B;AACA,kB;AACA,M;AACA,W;AACA,0B;AACA,I;AACA,G;;AAEA,a;AACA,G;;AAEA,oC;AACA,U;;AAEA,c;AACA,mB;AACA,wC;AACA,I;;AAEA,oB;AACA,kD;;AAEA,2B;AACA,sC;AACA,0C;AACA,c;AACA,K;AACA,I;AACA,G;;AAEA,Y;AACA,G;;AAEA,mC;AACA,2B;AACA,S;AACA,oB;;AAEA,qB;AACA,gC;AACA,G;;AAEA,kB;AACA,0F;AACA,sB;AACA,sC;AACA,iC;AACA,I;AACA,G;;AAEA,mB;;AAEA,e;AACA,G;;AAEA,4C;AACA,sB;AACA,gB;AACA,S;AACA,yB;AACA,4B;;AAEA,gD;AACA,qC;AACA,6B;AACA,gD;AACA,8C;AACA,+B;AACA,I;AACA,G;;AAEA,iB;AACA,G;;AAEA,kC;AACA,wC;AACA,Y;AACA,S;AACA,yB;AACA,kC;AACA,Y;;AAEA,4E;AACA,kB;AACA,8B;AACA,2C;;AAEA,0B;AACA,uB;AACA,K;AACA,I;;AAEA,wC;AACA,U;AACA,uB;AACA,2C;;AAEA,0B;AACA,uB;AACA,K;AACA,I;AACA,G;;AAEA,8B;AACA,iC;AACA,G;;AAEA,qC;AACA,S;;AAEA,mE;AACA,c;AACA,iC;AACA,uB;;AAEA,sC;AACA,uB;AACA,gB;AACA,Y;AACA,G;;AAEA,gE;AACA,gE;AACA,mC;AACA,oB;AACA,G;;AAEA,mB;AACA,oC;AACA,sB;AACA,8E;AACA,I;;AAEA,yF;AACA,kD;;AAEA,e;AACA,G;;AAEA,kB;AACA,yB;AACA,G;;AAEA,sE;AACA,0C;AACA,iB;AACA,G;;AAEA,8B;AACA,2G;AACA,4D;AACA,G;;AAEA,6B;AACA,yB;AACA,4B;;AAEA,uD;AACA,e;AACA,E;;AAEA,sC;AACA,c;AACA,E;;AAEA,2C;AACA,oE;AACA,C;AACA,Y;AACA,G;AACA,wC;AACA,uB;AACA,E;AACA,sE;AACA,iC;AACA,4B;AACA,E;AACA,mB;AACA,G;AACA,qB;;AAEA,M;AACA,S;AACA,M;AACA,S;AACA,O;AACA,U;AACA,S;AACA,Q;AACA,kB;AACA,W;AACA,c;;AAEA,uB;AACA,a;AACA,U;AACA,S;AACA,gB;AACA,W;AACA,e;AACA,S;AACA,U;;AAEA,0B;AACA,qC;AACA,gC;AACA,a;AACA,U;AACA,4B;AACA,4B;AACA,+B;AACA,+B;AACA,kB;AACA,uB;AACA,G;AACA,W;AACA,G;;AAEA,6B;AACA,wB;;AAEA,oB;AACA,8B;AACA,U;AACA,e;AACA,wB;AACA,iB;AACA,mB;AACA,0D;AACA,2C;AACA,mC;AACA,Y;AACA,qB;AACA,0B;AACA,4B;AACA,a;AACA,I;AACA,G;AACA,Y;AACA,G;;AAEA,yI;;AAEA,uB;;AAEA,yE;AACA,oC;AACA,gD;AACA,wD;;AAEA,gD;AACA,yG;AACA,+E;AACA,qD;;AAEA,4E;AACA,mF;AACA,yB;AACA,gC;AACA,+F;AACA,iG;AACA,S;;AAEA,kD;AACA,2F;AACA,kD;AACA,2D;AACA,0B;AACA,oD;AACA,iC;AACA,Q;AACA,W;;AAEA,8G;AACA,mD;AACA,iG;;AAEA,mE;AACA,kG;;AAEA,iG;;AAEA,iC;AACA,oD;;AAEA,c;AACA,sD;AACA,2D;AACA,2E;AACA,yC;AACA,wC;AACA,8F;AACA,6E;AACA,+C;AACA,sD;AACA,4C;AACA,6C;AACA,qG;AACA,2E;AACA,G;;AAEA,iD;AACA,oB;;AAEA,oC;;AAEA,6D;AACA,iD;;AAEA,mB;AACA,mB;;AAEA,0E;AACA,iG;AACA,wD;AACA,sC;AACA,4B;AACA,wB;AACA,yD;AACA,6C;AACA,Y;AACA,a;AACA,oB;AACA,2C;AACA,oD;AACA,sE;AACA,G;;AAEA,oB;AACA,qB;AACA,8D;AACA,e;AACA,6B;AACA,gB;AACA,G;;AAEA,yC;AACA,K;AACA,Y;AACA,gD;AACA,yB;AACA,G;AACA,wB;AACA,sC;AACA,gD;AACA,e;AACA,6B;;AAEA,+B;AACA,2B;AACA,gD;AACA,K;;AAEA,kB;AACA,8B;AACA,2B;AACA,yB;AACA,U;AACA,iC;AACA,wC;AACA,yB;AACA,G;AACA,G;AACA,C;;AAEA,qD;AACA,8B;AACA,a;AACA,+C;;AAEA,oF;AACA,yB;AACA,E;;AAEA,+B;AACA,yB;AACA,6B;;AAEA,kD;AACA,yD;;AAEA,iB;AACA,E;;AAEA,iC;;AAEA,qF;AACA,mE;AACA,6B;AACA,0B;AACA,2B;AACA,wC;AACA,6D;AACA,+D;AACA,qC;AACA,iE;AACA,8B;AACA,4B;AACA,4B;AACA,sB;AACA,O;AACA,a;AACA,qB;AACA,M;AACA,Y;AACA,iC;AACA,wF;AACA,oD;AACA,2B;AACA,qB;AACA,M;AACA,K;;AAEA,6B;AACA,2B;AACA,oE;AACA,mB;;AAEA,gC;AACA,mE;AACA,+D;AACA,mB;AACA,I;AACA,G;;AAEA,a;AACA,qE;AACA,uB;AACA,wB;AACA,4C;;AAEA,mD;AACA,mE;AACA,2E;AACA,0C;AACA,yE;AACA,kC;;AAEA,+C;AACA,0C;AACA,Y;AACA,uC;AACA,K;AACA,gC;;AAEA,sB;AACA,mB;AACA,+C;AACA,K;AACA,2F;AACA,mC;AACA,I;;AAEA,uB;AACA,S;AACA,yB;AACA,gD;AACA,O;AACA,oB;AACA,uB;AACA,e;AACA,kB;AACA,oC;AACA,M;AACA,K;AACA,I;AACA,G;AACA,E;;AAEA,c;AACA,0E;AACA,C;;AAEA,G;AACA,0C;AACA,8F;AACA,+F;AACA,4B;AACA,G;AACA,wB;AACA,e;;AAEA,+B;AACA,yF;AACA,oD;AACA,uC;AACA,gC;AACA,G;AACA,sC;AACA,E;AACA,c;AACA,C;;AAEA,G;AACA,4C;AACA,4C;AACA,G;AACA,6B;AACA,sB;AACA,W;AACA,C;;AAEA,G;AACA,mC;AACA,2E;AACA,G;AACA,uB;AACA,yC;;AAEA,M;AACA,qB;AACA,c;AACA,e;AACA,Y;AACA,sC;AACA,yB;AACA,qC;AACA,G;AACA,yB;AACA,a;AACA,E;AACA,C;;AAEA,G;AACA,uD;AACA,0D;AACA,4D;AACA,G;AACA,sC;AACA,4B;AACA,mB;;AAEA,gB;AACA,sC;AACA,E;AACA,C;;AAEA,G;AACA,wC;AACA,qB;AACA,qB;AACA,uF;AACA,G;AACA,+B;AACA,kB;AACA,uD;AACA,uC;AACA,sC;;AAEA,iD;AACA,c;AACA,c;AACA,E;;AAEA,wB;AACA,a;AACA,qC;AACA,qB;AACA,c;AACA,I;AACA,G;AACA,E;;AAEA,mB;AACA,C;;AAEA,G;AACA,uD;AACA,uB;AACA,G;AACA,oC;AACA,0B;AACA,yC;AACA,gD;AACA,G;AACA,C;;AAEA,G;AACA,mD;AACA,uB;AACA,G;AACA,qC;AACA,0B;AACA,yC;AACA,uE;AACA,G;AACA,C;;AAEA,G;AACA,uD;AACA,uB;AACA,G;AACA,uC;AACA,2C;AACA,uB;AACA,iD;AACA,S;AACA,mD;AACA,4B;;AAEA,mD;AACA,kB;AACA,0C;AACA,uC;AACA,K;AACA,I;AACA,K;AACA,I;AACA,C;;AAEA,G;AACA,iD;AACA,mC;AACA,0F;AACA,G;AACA,iC;AACA,kF;AACA,C;;AAEA,sC;AACA,8B;;AAEA,G;AACA,oB;AACA,wD;AACA,0D;AACA,G;AACA,yC;AACA,oE;AACA,2C;AACA,4E;AACA,sE;AACA,E;;AAEA,G;AACA,qE;AACA,yF;AACA,iD;AACA,G;AACA,qD;AACA,wB;AACA,yD;;AAEA,2D;AACA,wE;AACA,kB;AACA,E;;AAEA,oB;AACA,gB;AACA,+B;AACA,0B;;AAEA,iB;AACA,0F;AACA,iG;AACA,6E;AACA,yC;AACA,uD;AACA,kC;AACA,6D;AACA,oC;AACA,mD;AACA,G;AACA,E;;AAEA,iB;AACA,0E;AACA,gC;;AAEA,c;AACA,0E;;AAEA,iB;AACA,yE;AACA,4B;AACA,8C;AACA,sB;AACA,wC;AACA,I;;AAEA,oB;AACA,0E;;AAEA,4D;AACA,wD;AACA,2C;AACA,+C;AACA,I;;AAEA,iB;AACA,6E;;AAEA,kB;AACA,oD;AACA,8E;AACA,8C;AACA,2C;AACA,0C;AACA,4E;AACA,I;;AAEA,sB;AACA,yB;AACA,6C;AACA,2E;AACA,yC;AACA,4D;AACA,qD;AACA,0C;AACA,I;AACA,I;AACA,sC;AACA,mD;AACA,4B;AACA,8C;AACA,K;AACA,I;AACA,S;AACA,mB;AACA,sD;AACA,yB;;AAEA,uC;AACA,mD;AACA,4B;AACA,2F;AACA,yC;AACA,K;AACA,I;AACA,E;;AAEA,O;AACA,kD;AACA,4B;AACA,+D;AACA,+C;;AAEA,6C;AACA,8B;AACA,2C;AACA,I;AACA,K;;AAEA,4B;AACA,Y;AACA,a;AACA,U;AACA,mF;AACA,kD;;AAEA,kC;AACA,uB;AACA,qC;AACA,iC;AACA,uB;AACA,M;AACA,K;;AAEA,e;AACA,I;AACA,kB;AACA,I;;AAEA,S;AACA,wF;AACA,yB;AACA,sD;AACA,G;AACA,G;;AAEA,uB;AACA,0E;;AAEA,mC;;AAEA,qE;AACA,oB;;AAEA,mD;AACA,gE;AACA,8D;AACA,8E;AACA,2C;AACA,gB;;AAEA,8D;AACA,oB;AACA,6C;AACA,0B;AACA,8C;AACA,sD;AACA,0C;AACA,yC;AACA,yC;AACA,0E;AACA,2D;AACA,6C;;AAEA,kC;AACA,yE;AACA,sE;AACA,gF;AACA,+D;AACA,6D;AACA,I;;AAEA,kB;AACA,8D;AACA,sD;AACA,yE;AACA,I;;AAEA,+E;AACA,oE;AACA,yB;AACA,I;;AAEA,oE;AACA,oE;AACA,wD;AACA,oD;AACA,+B;AACA,I;;AAEA,gC;AACA,oD;AACA,4D;AACA,iE;AACA,+B;AACA,I;AACA,K;;AAEA,0B;AACA,oC;AACA,8E;AACA,0C;AACA,0C;AACA,wD;;AAEA,kB;AACA,gD;AACA,mD;AACA,0D;AACA,I;;AAEA,yF;AACA,wD;AACA,oD;AACA,8C;AACA,I;;AAEA,8D;AACA,gC;AACA,0B;AACA,K;AACA,E;;AAEA,4E;AACA,kC;AACA,+B;AACA,6B;AACA,mC;;AAEA,0B;AACA,yD;AACA,mC;AACA,0D;;AAEA,wC;AACA,iD;AACA,oC;AACA,uC;AACA,K;AACA,E;;AAEA,mE;AACA,+E;;AAEA,Y;AACA,0E;AACA,8D;;AAEA,4B;AACA,wD;AACA,6C;AACA,4D;AACA,oB;AACA,wD;AACA,4B;AACA,yD;AACA,oB;AACA,4B;AACA,uE;AACA,M;AACA,K;AACA,oB;AACA,a;AACA,kC;AACA,qB;AACA,kB;AACA,M;AACA,K;AACA,I;AACA,gB;AACA,I;;AAEA,W;AACA,0E;;AAEA,0B;AACA,yB;AACA,mB;;AAEA,+B;AACA,kB;AACA,uB;AACA,Y;AACA,G;;AAEA,2E;AACA,wE;AACA,kB;AACA,kB;AACA,G;;AAEA,kE;AACA,mE;AACA,mC;;AAEA,6C;AACA,K;;AAEA,uB;AACA,qB;AACA,4E;;AAEA,wE;AACA,sF;AACA,c;AACA,I;AACA,sF;AACA,a;AACA,I;;AAEA,6B;AACA,qB;AACA,2D;AACA,M;AACA,G;;AAEA,8B;AACA,I;AACA,mB;AACA,0C;AACA,kB;AACA,uB;AACA,Y;AACA,G;;AAEA,U;AACA,S;AACA,sB;AACA,sB;AACA,c;AACA,c;;AAEA,0D;AACA,uB;AACA,0B;AACA,mB;AACA,c;AACA,a;AACA,e;AACA,2D;AACA,M;;AAEA,uD;AACA,6B;AACA,+B;AACA,G;;AAEA,mE;AACA,U;AACA,oC;AACA,qB;AACA,G;AACA,U;AACA,oC;AACA,qB;AACA,G;;AAEA,iD;AACA,6B;AACA,O;AACA,G;;AAEA,Y;AACA,4D;AACA,iC;;AAEA,gD;AACA,gC;AACA,+B;AACA,K;AACA,G;;AAEA,Y;AACA,E;;AAEA,6C;AACA,6C;AACA,E;;AAEA,iD;AACA,+B;AACA,qD;AACA,sB;AACA,E;;AAEA,iD;AACA,mD;;AAEA,kD;AACA,sD;AACA,mD;;AAEA,O;AACA,wC;;AAEA,gE;AACA,2C;AACA,gE;AACA,wB;AACA,uD;AACA,e;AACA,I;AACA,gB;AACA,E;;AAEA,4D;AACA,E;;AAEA,6C;AACA,+B;AACA,2D;AACA,yB;AACA,E;AACA,kC;AACA,E;;AAEA,sC;AACA,+B;AACA,qD;AACA,sB;AACA,E;;AAEA,gD;AACA,oE;AACA,kE;AACA,sC;AACA,a;;AAEA,2B;AACA,O;AACA,yC;AACA,8B;AACA,yD;AACA,e;AACA,S;AACA,E;;AAEA,gC;AACA,oE;AACA,E;;AAEA,G;AACA,2C;AACA,6B;AACA,G;AACA,yC;AACA,U;AACA,kB;AACA,Q;AACA,Q;;AAEA,oE;AACA,0C;AACA,uD;AACA,2B;;AAEA,sB;AACA,mC;AACA,iC;AACA,6B;AACA,I;AACA,G;AACA,iB;AACA,wC;AACA,G;AACA,E;;AAEA,gD;AACA,iD;AACA,kB;;AAEA,gB;AACA,E;;AAEA,G;AACA,0E;AACA,8B;AACA,G;AACA,6C;AACA,U;AACA,W;AACA,Q;AACA,2B;;AAEA,mB;AACA,oD;AACA,gC;AACA,mC;AACA,0B;AACA,G;AACA,oE;AACA,iC;AACA,yE;AACA,+C;AACA,2B;AACA,U;AACA,2B;AACA,kE;AACA,2B;AACA,I;AACA,G;AACA,iD;AACA,wB;AACA,E;AACA,0D;;AAEA,Y;AACA,E;;AAEA,2B;;AAEA,+B;AACA,iB;;AAEA,4B;;AAEA,kB;;AAEA,gB;;AAEA,U;;AAEA,Y;AACA,0C;AACA,6B;AACA,+C;AACA,iC;AACA,G;;AAEA,a;AACA,6B;AACA,uD;;AAEA,iE;AACA,yF;;AAEA,6B;AACA,oC;AACA,I;;AAEA,8B;AACA,I;;AAEA,8B;AACA,qC;AACA,yB;AACA,0B;AACA,gD;AACA,gD;AACA,0B;AACA,uB;AACA,yB;AACA,sB;AACA,K;AACA,qC;;AAEA,4C;AACA,8B;AACA,sB;AACA,8B;AACA,K;;AAEA,uD;AACA,wD;AACA,8G;AACA,kE;;AAEA,oC;AACA,2B;AACA,6B;AACA,I;;AAEA,gB;AACA,I;;AAEA,+B;AACA,c;AACA,qC;;AAEA,+C;AACA,gB;AACA,I;;AAEA,mC;AACA,oB;AACA,0C;;AAEA,qD;AACA,sD;AACA,6C;AACA,4C;AACA,8C;AACA,sF;;AAEA,iC;AACA,2C;AACA,2C;AACA,I;;AAEA,iF;AACA,8B;AACA,G;AACA,G;;AAEA,U;;AAEA,uC;AACA,iF;AACA,oC;AACA,iC;AACA,sB;AACA,sE;AACA,M;AACA,I;;AAEA,kC;AACA,+C;;AAEA,oB;AACA,gG;AACA,6C;AACA,iK;AACA,O;AACA,I;;AAEA,6C;AACA,4B;AACA,2C;;AAEA,2B;AACA,8B;AACA,K;AACA,sB;AACA,iB;AACA,K;;AAEA,iB;;AAEA,gD;AACA,2C;AACA,iE;AACA,gE;AACA,2E;AACA,mG;AACA,kG;AACA,W;AACA,K;AACA,I;;AAEA,0D;AACA,6C;AACA,0C;AACA,gC;;AAEA,qC;;AAEA,6B;AACA,sB;AACA,8B;AACA,O;;AAEA,oC;AACA,yD;AACA,mE;AACA,+B;AACA,mD;AACA,iC;;AAEA,oB;;AAEA,2C;AACA,qB;AACA,sB;AACA,oB;AACA,wC;AACA,qF;AACA,uB;AACA,U;AACA,S;AACA,oE;AACA,iE;AACA,Q;AACA,mB;AACA,O;;AAEA,iE;;AAEA,8D;AACA,kC;AACA,oD;AACA,kE;AACA,wC;AACA,oD;AACA,+C;AACA,0D;;AAEA,4D;;AAEA,oD;AACA,kD;;AAEA,0D;AACA,+D;AACA,2D;AACA,e;AACA,S;AACA,Q;;AAEA,yD;AACA,uH;AACA,uB;;AAEA,iF;AACA,c;AACA,kE;AACA,4D;AACA,kD;;AAEA,kG;AACA,uD;AACA,0B;AACA,kF;AACA,U;;AAEA,+B;AACA,gB;AACA,U;AACA,S;AACA,Q;AACA,O;;AAEA,8D;AACA,mB;AACA,2E;AACA,M;AACA,M;AACA,I;;AAEA,0C;AACA,6C;AACA,oD;AACA,4F;AACA,oD;AACA,Y;AACA,6E;AACA,qD;;AAEA,oD;AACA,wD;AACA,yB;AACA,yB;AACA,0B;AACA,I;;AAEA,6C;AACA,yB;AACA,4C;AACA,mE;AACA,6C;AACA,c;AACA,sC;AACA,0B;AACA,qB;AACA,yC;AACA,sD;AACA,O;AACA,S;AACA,uB;AACA,iC;AACA,O;AACA,I;;AAEA,a;AACA,G;AACA,G;;AAEA,W;AACA,gC;AACA,4C;AACA,yC;AACA,4C;AACA,2B;AACA,kB;AACA,iB;AACA,yD;;AAEA,8B;AACA,0D;AACA,c;AACA,iD;AACA,sB;;AAEA,6C;AACA,oB;AACA,oC;AACA,sC;AACA,O;AACA,M;AACA,Q;AACA,oC;AACA,qB;AACA,0C;AACA,2C;AACA,qB;AACA,2B;AACA,M;AACA,K;;AAEA,4C;AACA,4B;AACA,+C;AACA,K;AACA,K;;AAEA,6C;AACA,+C;AACA,4B;AACA,0F;AACA,K;AACA,K;;AAEA,6D;AACA,oD;AACA,qC;AACA,oE;AACA,4F;AACA,iE;AACA,gD;AACA,0C;AACA,2C;AACA,yC;AACA,gD;AACA,I;AACA,6D;AACA,4B;AACA,iB;AACA,Q;AACA,sC;AACA,iB;AACA,qE;;AAEA,wC;AACA,uE;AACA,M;AACA,gE;AACA,iB;AACA,K;AACA,K;;AAEA,kB;AACA,8B;AACA,sD;AACA,8C;AACA,I;;AAEA,4B;AACA,2B;AACA,I;;AAEA,6B;AACA,yI;AACA,I;;AAEA,uB;AACA,+B;AACA,kC;AACA,I;;AAEA,gC;AACA,iC;AACA,I;;AAEA,+B;AACA,wE;AACA,oE;AACA,8C;AACA,iG;AACA,I;;AAEA,gC;AACA,uD;AACA,qC;AACA,2B;AACA,kC;AACA,I;;AAEA,iC;AACA,I;;AAEA,a;AACA,6B;AACA,kD;AACA,2F;AACA,uE;AACA,yE;AACA,kE;AACA,8B;AACA,kB;AACA,K;AACA,I;AACA,e;AACA,I;;AAEA,8B;AACA,yC;AACA,I;;AAEA,wB;AACA,8B;AACA,wC;AACA,I;;AAEA,6B;AACA,wC;AACA,I;;AAEA,8B;AACA,0C;AACA,0E;AACA,I;;AAEA,4B;AACA,Y;AACA,oD;AACA,2B;;AAEA,oB;AACA,mF;AACA,oF;AACA,I;;AAEA,2B;AACA,8C;AACA,gB;AACA,K;;AAEA,mE;AACA,yB;AACA,K;;AAEA,2E;AACA,0D;AACA,K;;AAEA,mE;AACA,a;AACA,iC;AACA,2B;AACA,I;AACA,uB;AACA,K;;AAEA,kE;AACA,a;AACA,iC;AACA,2B;AACA,I;AACA,uB;AACA,K;;AAEA,2E;AACA,uD;AACA,wB;AACA,2B;AACA,I;AACA,uB;AACA,K;;AAEA,2E;AACA,uD;AACA,4B;AACA,2B;AACA,I;AACA,uB;AACA,I;AACA,E;AACA,E;;AAEA,yC;;AAEA,gC;AACA,uF;AACA,4C;AACA,C;AACA,4C;AACA,6C;AACA,C;;AAEA,uC;AACA,wB;AACA,mD;AACA,mC;;AAEA,8D;AACA,kC;AACA,4B;AACA,wC;;AAEA,gB;AACA,2C;AACA,E;;AAEA,kB;AACA,a;AACA,6B;;AAEA,kB;;AAEA,wB;AACA,qD;AACA,iB;AACA,6C;AACA,oD;AACA,I;AACA,gC;AACA,G;;AAEA,kB;;AAEA,gB;AACA,+C;AACA,2B;AACA,gB;AACA,mB;AACA,2C;AACA,wC;AACA,M;AACA,yC;AACA,G;;AAEA,Y;AACA,+B;AACA,4E;AACA,8C;AACA,4B;AACA,iB;AACA,oB;AACA,gB;AACA,mB;AACA,O;AACA,0C;AACA,I;AACA,G;;AAEA,mB;AACA,S;AACA,G;AACA,E;;AAEA,2C;AACA,yB;AACA,8C;AACA,mB;AACA,gB;AACA,S;AACA,6B;AACA,sB;AACA,6C;AACA,E;;AAEA,+B;AACA,W;AACA,sB;AACA,gB;AACA,yB;AACA,8B;AACA,E;AACA,iB;AACA,C;;AAEA,qD;AACA,0B;AACA,kD;AACA,oB;;AAEA,0B;AACA,qD;AACA,kC;AACA,mC;AACA,oD;AACA,0C;AACA,K;AACA,I;AACA,K;;AAEA,kD;AACA,kC;AACA,4B;AACA,qC;;AAEA,sF;AACA,e;AACA,oC;AACA,qD;AACA,4C;AACA,mB;AACA,O;AACA,M;AACA,K;AACA,W;AACA,oC;AACA,qD;AACA,6D;AACA,4C;AACA,kE;;AAEA,2E;AACA,8C;AACA,c;AACA,uE;AACA,oC;;AAEA,yE;AACA,+D;AACA,oB;AACA,Q;AACA,O;AACA,M;AACA,K;AACA,I;AACA,I;AACA,C;;AAEA,qC;AACA,6B;AACA,kC;AACA,2B;AACA,kB;AACA,+C;AACA,kB;AACA,K;AACA,I;AACA,e;AACA,K;AACA,c;AACA,C;;AAEA,0D;AACA,W;AACA,wB;AACA,yB;AACA,2C;AACA,E;AACA,gB;AACA,C;;AAEA,2D;AACA,U;AACA,oB;AACA,Q;AACA,yB;AACA,uB;;AAEA,yB;AACA,gC;AACA,mD;AACA,8B;AACA,mB;AACA,mB;AACA,K;AACA,I;AACA,G;AACA,E;;AAEA,qB;AACA,C;;AAEA,2F;AACA,8C;AACA,wC;AACA,E;AACA,8C;AACA,sD;AACA,E;AACA,8D;AACA,oB;AACA,e;AACA,gB;AACA,gC;;AAEA,+C;AACA,qG;;AAEA,uF;AACA,mD;AACA,wD;AACA,U;;AAEA,yB;AACA,gG;AACA,oE;;AAEA,+C;AACA,S;;AAEA,yC;AACA,c;AACA,c;;AAEA,yB;AACA,kB;AACA,kD;AACA,G;;AAEA,qB;AACA,qB;AACA,0C;AACA,wC;;AAEA,gE;AACA,mB;AACA,kB;AACA,6B;AACA,kE;AACA,K;AACA,I;AACA,G;;AAEA,e;AACA,mC;AACA,uB;AACA,yF;AACA,e;AACA,2B;AACA,oB;AACA,qC;AACA,+D;AACA,0C;AACA,O;AACA,M;AACA,sD;AACA,K;;AAEA,2E;AACA,0B;AACA,mB;AACA,mC;AACA,sE;;AAEA,2C;AACA,M;AACA,K;AACA,I;;AAEA,2D;AACA,U;AACA,yB;AACA,4B;AACA,0D;AACA,e;AACA,K;AACA,sB;AACA,iD;AACA,W;AACA,sC;AACA,I;AACA,G;AACA,I;AACA,C;;AAEA,sC;AACA,8B;AACA,sB;AACA,oD;AACA,2D;AACA,8B;;AAEA,2F;AACA,kD;AACA,gC;AACA,8B;AACA,qD;AACA,6C;AACA,8B;AACA,+C;AACA,iF;AACA,uC;AACA,yC;AACA,6C;AACA,6C;AACA,uB;AACA,c;AACA,M;;AAEA,yB;AACA,sD;AACA,qE;AACA,U;AACA,4E;;AAEA,qD;AACA,8B;AACA,mE;AACA,Y;AACA,4B;AACA,6C;AACA,Y;AACA,M;AACA,K;AACA,sB;AACA,yC;AACA,yB;AACA,+F;AACA,yF;AACA,8B;AACA,a;AACA,wD;AACA,kE;AACA,oC;AACA,M;AACA,I;AACA,4B;AACA,G;AACA,E;;AAEA,mC;AACA,C;;AAEA,mE;AACA,oC;AACA,yC;AACA,qE;AACA,wB;AACA,qB;AACA,Y;AACA,2B;AACA,oB;AACA,qC;AACA,oE;AACA,oE;AACA,4D;AACA,kF;AACA,uB;;AAEA,qB;AACA,uD;AACA,I;;AAEA,8D;AACA,qF;AACA,2B;AACA,2F;AACA,0D;AACA,8B;AACA,W;AACA,iD;AACA,4C;AACA,4B;AACA,a;AACA,O;AACA,M;AACA,uB;AACA,8B;AACA,M;AACA,K;;AAEA,+C;AACA,kB;AACA,yD;AACA,uC;AACA,qB;AACA,M;;AAEA,4D;AACA,kB;AACA,6B;AACA,M;AACA,K;AACA,I;;AAEA,6C;AACA,qB;AACA,uC;AACA,U;AACA,4C;AACA,oD;AACA,K;;AAEA,iB;AACA,qE;AACA,8B;AACA,qB;AACA,gD;AACA,4C;AACA,Q;AACA,O;AACA,M;;AAEA,mE;AACA,yC;AACA,K;;AAEA,6B;AACA,sC;;AAEA,qF;AACA,uD;AACA,kD;;AAEA,kC;AACA,K;AACA,I;;AAEA,yD;AACA,qB;AACA,4B;AACA,qC;AACA,I;;AAEA,oB;AACA,I;;AAEA,e;AACA,gC;AACA,e;AACA,C;;AAEA,gF;AACA,O;AACA,mB;AACA,uB;AACA,2C;;AAEA,iB;AACA,sF;AACA,iB;AACA,gC;AACA,G;AACA,mB;AACA,iB;AACA,0C;AACA,6B;AACA,+B;AACA,W;AACA,mC;AACA,I;AACA,G;;AAEA,gC;AACA,+F;;AAEA,mC;AACA,6B;AACA,E;AACA,e;AACA,E;;AAEA,G;AACA,mE;AACA,sB;AACA,iE;AACA,+C;AACA,2B;AACA,2B;AACA,2D;AACA,G;AACA,uE;AACA,kC;AACA,wD;AACA,0E;;AAEA,yB;;AAEA,qE;AACA,4B;;AAEA,sE;AACA,0C;AACA,gE;AACA,kE;AACA,uC;;AAEA,qG;AACA,oB;AACA,mB;;AAEA,yE;AACA,2B;AACA,iC;AACA,I;;AAEA,4D;AACA,G;;AAEA,gD;AACA,qE;AACA,iB;AACA,qB;;AAEA,kC;AACA,gD;AACA,U;AACA,I;AACA,sC;AACA,gE;AACA,sB;AACA,sD;AACA,oF;AACA,U;;AAEA,iE;AACA,2B;AACA,oD;AACA,uB;AACA,kC;AACA,qB;AACA,M;;AAEA,W;AACA,K;AACA,I;AACA,G;AACA,E;;AAEA,mE;AACA,6E;AACA,4C;AACA,O;AACA,U;AACA,kB;AACA,U;AACA,2E;AACA,G;AACA,gB;AACA,E;;AAEA,uB;;AAEA,iB;AACA,8E;;AAEA,yB;AACA,4E;AACA,0C;;AAEA,0C;AACA,c;;AAEA,uE;AACA,mD;AACA,gD;AACA,8C;AACA,0E;AACA,G;;AAEA,gB;AACA,6C;AACA,mE;AACA,8B;AACA,oC;AACA,qD;AACA,M;AACA,qE;AACA,iB;AACA,2E;AACA,G;AACA,I;AACA,C;;AAEA,gB;AACA,qD;AACA,qD;AACA,4B;AACA,4C;AACA,sD;AACA,M;AACA,oD;AACA,4D;AACA,4B;AACA,G;AACA,I;AACA,C;;AAEA,gB;AACA,gE;AACA,8B;AACA,6C;AACA,M;AACA,qD;AACA,U;AACA,iB;AACA,sD;AACA,6D;AACA,gB;AACA,S;AACA,G;AACA,I;AACA,C;;AAEA,c;;AAEA,a;;;;AAIA,qB;AACA,+B;AACA,uC;AACA,kC;AACA,6B;AACA,+B;AACA,kC;;;;AAIA,mD;;AAEA,gD;;;;AAIA,iC;;AAEA,2D;AACA,6C;AACA,wC;AACA,qD;AACA,qB;AACA,oD;AACA,K;;AAEA,E;;AAEA,4B;AACA,kD;AACA,yC;AACA,K;;AAEA,E;;AAEA,uC;AACA,sC;AACA,oD;AACA,G;;AAEA,mD;AACA,E;;AAEA,iD;AACA,4D;AACA,I;AACA,C;;AAEA,8C;AACA,uB;;AAEA,a;AACA,8B;AACA,E;;AAEA,mD;AACA,6D;AACA,mE;AACA,8B;AACA,M;AACA,E;;AAEA,kB;AACA,6B;AACA,Q;AACA,Y;AACA,e;AACA,qB;;AAEA,uC;AACA,gE;AACA,iC;AACA,gD;AACA,kB;AACA,M;AACA,K;AACA,Q;AACA,G;;AAEA,+B;AACA,2C;AACA,G;;AAEA,gF;AACA,+D;AACA,2E;AACA,a;AACA,G;AACA,+B;AACA,+D;AACA,G;AACA,4B;AACA,8D;AACA,G;AACA,2B;AACA,kB;AACA,Q;;AAEA,qF;AACA,4E;AACA,mE;AACA,wB;AACA,mB;AACA,Q;AACA,W;AACA,E;AACA,G;;;AAGA,6B;;;AAGA,mD;AACA,e;;AAEA,uE;AACA,4B;;AAEA,0C;AACA,oE;AACA,uD;AACA,oD;;AAEA,wD;AACA,kB;;AAEA,mD;AACA,oB;AACA,e;AACA,G;;AAEA,wB;AACA,uC;AACA,gH;AACA,uF;AACA,qC;;AAEA,W;AACA,wC;AACA,I;;AAEA,6D;AACA,2C;;AAEA,kC;AACA,qB;AACA,gE;;AAEA,uC;AACA,yE;AACA,0C;AACA,e;AACA,gF;AACA,U;AACA,S;;AAEA,8B;AACA,4E;AACA,gC;AACA,iE;AACA,kD;AACA,0C;;AAEA,4C;AACA,e;AACA,6C;AACA,Q;AACA,O;AACA,M;;AAEA,iB;;AAEA,qB;AACA,Y;AACA,gD;;AAEA,6D;AACA,sD;AACA,qC;AACA,wD;AACA,8B;AACA,mC;AACA,0C;AACA,O;;AAEA,yE;AACA,sB;AACA,qB;AACA,M;;AAEA,6B;AACA,8B;AACA,iB;AACA,K;;AAEA,6B;AACA,6C;AACA,sD;;AAEA,8B;AACA,yD;AACA,W;AACA,wD;AACA,I;;AAEA,0B;AACA,mC;AACA,qC;AACA,mB;AACA,e;;AAEA,wB;AACA,gC;AACA,+C;AACA,mD;AACA,kC;AACA,kD;AACA,uB;AACA,G;;AAEA,0C;AACA,qC;AACA,mC;AACA,G;;AAEA,4C;AACA,G;;AAEA,sE;AACA,2B;;AAEA,+B;AACA,gC;;;AAGA,oD;AACA,8E;AACA,qB;AACA,iB;AACA,iB;AACA,a;AACA,Y;AACA,G;;AAEA,e;AACA,oC;AACA,mB;AACA,qB;;AAEA,oH;AACA,8B;AACA,wB;AACA,I;AACA,kB;AACA,G;AACA,iB;AACA,G;;AAEA,+B;AACA,a;;AAEA,kC;AACA,0C;AACA,gB;AACA,I;AACA,G;;AAEA,W;AACA,E;AACA,G;;AAEA,kB;AACA,0B;AACA,Q;AACA,oC;AACA,wB;;AAEA,iC;AACA,gC;AACA,gD;AACA,iB;AACA,K;AACA,I;AACA,K;AACA,G;;AAEA,0C;AACA,U;AACA,S;AACA,mB;AACA,gB;AACA,2E;AACA,kD;AACA,M;;AAEA,wB;AACA,wE;AACA,qC;AACA,oC;AACA,0B;;AAEA,yC;AACA,0B;AACA,sD;;AAEA,yB;AACA,W;AACA,K;AACA,I;AACA,G;;AAEA,mF;AACA,G;;AAEA,+C;AACA,+B;AACA,0B;;AAEA,wC;AACA,gB;AACA,iF;AACA,G;;AAEA,sB;AACA,mC;AACA,oD;AACA,G;;AAEA,+C;AACA,wB;AACA,+D;AACA,wC;AACA,G;;AAEA,qC;AACA,wB;AACA,iB;AACA,2D;AACA,I;AACA,I;AACA,G;;AAEA,gC;AACA,qC;AACA,qD;AACA,I;AACA,E;AACA,G;;AAEA,8B;AACA,K;AACA,mB;AACA,uC;;AAEA,Y;AACA,C;;AAEA,a;AACA,2B;AACA,+B;AACA,0D;AACA,G;AACA,4B;AACA,0C;AACA,G;AACA,2C;AACA,iD;AACA,G;AACA,yB;AACA,wC;AACA,G;AACA,yB;AACA,4C;AACA,G;AACA,4B;AACA,2C;AACA,G;AACA,4B;AACA,+C;AACA,G;AACA,wC;AACA,kD;AACA,G;AACA,wC;AACA,sD;AACA,G;AACA,6B;AACA,sE;AACA,G;AACA,6B;AACA,2C;AACA,G;AACA,6B;AACA,4C;AACA,wD;AACA,uC;AACA,E;AACA,yB;AACA,kD;AACA,0C;;AAEA,uC;AACA,oB;AACA,G;;AAEA,mD;AACA,wC;AACA,G;;AAEA,0B;AACA,uB;AACA,qC;AACA,+B;AACA,I;;AAEA,qD;AACA,qC;AACA,wB;AACA,I;AACA,G;;AAEA,+B;AACA,G;AACA,G;AACA,yB;;;;AAIA,wC;AACA,sB;;AAEA,iF;AACA,mC;AACA,2C;AACA,qE;AACA,wB;AACA,I;AACA,e;AACA,C;;AAEA,E;AACA,yD;AACA,E;AACA,4E;AACA,kE;AACA,E;AACA,6E;AACA,0B;AACA,E;AACA,oB;AACA,E;AACA,iF;AACA,E;AACA,gF;AACA,2E;AACA,+B;AACA,E;AACA,qF;AACA,E;AACA,gE;AACA,E;AACA,G;AACA,wC;;AAEA,uE;AACA,6B;AACA,wC;AACA,2D;AACA,+B;;AAEA,gD;AACA,S;AACA,gD;AACA,S;AACA,2C;AACA,Q;AACA,gC;AACA,e;AACA,sE;AACA,c;AACA,iE;AACA,c;AACA,yB;AACA,Y;AACA,6C;AACA,8B;AACA,mB;AACA,2B;AACA,mC;AACA,gB;AACA,kC;AACA,mB;AACA,8B;AACA,iB;AACA,gE;AACA,+F;AACA,0D;AACA,W;AACA,K;AACA,I;AACA,kB;AACA,gB;AACA,kB;AACA,0B;AACA,4B;AACA,M;AACA,0B;AACA,e;AACA,Y;AACA,oB;AACA,K;AACA,I;AACA,I;AACA,4B;AACA,U;AACA,6D;AACA,oB;AACA,iB;AACA,yC;AACA,6B;AACA,4B;AACA,6C;AACA,qC;AACA,mC;AACA,oD;AACA,0B;AACA,S;AACA,6D;AACA,8B;AACA,mB;AACA,Q;AACA,S;AACA,qB;AACA,8C;AACA,6B;AACA,oB;AACA,iC;AACA,6C;AACA,iC;AACA,2B;AACA,0B;AACA,qB;AACA,M;AACA,K;AACA,gB;AACA,K;AACA,qC;AACA,uB;AACA,iB;AACA,iD;AACA,gB;AACA,qE;AACA,+B;AACA,+B;AACA,sB;AACA,sC;AACA,wB;AACA,S;AACA,qC;AACA,uB;AACA,S;AACA,Q;AACA,O;AACA,Q;AACA,K;AACA,gB;AACA,K;AACA,+C;AACA,iF;AACA,wB;AACA,4E;AACA,K;AACA,wC;AACA,sB;AACA,c;AACA,qB;AACA,gB;AACA,K;AACA,sC;AACA,wB;AACA,sC;AACA,gB;AACA,K;AACA,qB;AACA,yB;AACA,iB;AACA,K;AACA,wC;AACA,qB;AACA,sB;AACA,oB;AACA,oB;AACA,K;AACA,gB;AACA,K;AACA,mB;AACA,uB;AACA,kB;AACA,K;AACA,6D;AACA,wC;AACA,wC;AACA,uB;AACA,0D;AACA,oB;AACA,yB;AACA,a;AACA,mB;AACA,M;AACA,K;AACA,gB;AACA,K;AACA,qD;AACA,qB;AACA,qC;AACA,gB;AACA,K;AACA,qE;AACA,sB;AACA,mB;AACA,I;AACA,I;;AAEA,a;AACA,E;;;AAGA,e;;AAEA,6B;AACA,gB;AACA,uD;AACA,uE;AACA,sE;AACA,wD;AACA,K;AACA,qB;AACA,c;AACA,uB;AACA,kB;AACA,M;AACA,wB;AACA,kD;AACA,iB;AACA,M;AACA,wD;AACA,yB;AACA,kD;AACA,iD;AACA,0D;AACA,+E;AACA,wC;AACA,yD;AACA,kE;AACA,2B;AACA,mC;AACA,kC;AACA,uC;AACA,gB;AACA,wH;AACA,S;AACA,U;AACA,S;AACA,iB;AACA,kB;AACA,M;AACA,sC;AACA,oE;AACA,8B;AACA,kE;AACA,K;AACA,K;AACA,iB;;AAEA,8B;AACA,8B;;AAEA,8B;AACA,6C;AACA,yB;AACA,6B;;AAEA,kD;AACA,kC;;AAEA,kB;AACA,uB;AACA,yB;AACA,uC;AACA,yB;;AAEA,iE;AACA,6D;AACA,I;;AAEA,2C;AACA,sC;AACA,mF;AACA,gB;AACA,K;AACA,iD;AACA,K;;AAEA,gC;AACA,8B;;AAEA,2B;AACA,e;AACA,mC;AACA,G;;AAEA,c;AACA,kB;AACA,G;;AAEA,mB;AACA,0D;AACA,Y;AACA,2C;AACA,iC;;AAEA,2C;AACA,wG;;AAEA,6F;AACA,gE;;AAEA,0D;AACA,iD;AACA,8B;AACA,0B;AACA,0E;AACA,uC;AACA,8C;;AAEA,mC;AACA,+C;AACA,M;AACA,M;AACA,K;;AAEA,qD;;AAEA,qE;AACA,qB;AACA,wC;AACA,0C;AACA,yC;AACA,8B;AACA,kF;AACA,iC;AACA,8D;AACA,8B;AACA,qE;AACA,Y;AACA,iB;AACA,K;AACA,I;AACA,G;;AAEA,yD;AACA,qB;AACA,0D;AACA,G;;AAEA,4B;AACA,E;AACA,G;;;AAGA,iC;AACA,c;;AAEA,kC;AACA,oB;AACA,mC;;AAEA,a;AACA,E;;AAEA,e;AACA,4D;AACA,gB;;AAEA,wD;AACA,oC;AACA,c;;AAEA,qC;AACA,8B;AACA,e;AACA,sB;AACA,U;AACA,wB;AACA,G;AACA,G;;AAEA,gC;AACA,0B;;AAEA,4D;AACA,8D;AACA,U;AACA,G;;AAEA,0F;AACA,yB;AACA,qC;AACA,G;;AAEA,mC;AACA,wB;;AAEA,sE;AACA,kD;AACA,U;AACA,G;;AAEA,6C;AACA,gD;;AAEA,mC;AACA,mC;AACA,gD;AACA,qC;AACA,G;AACA,E;AACA,G;;AAEA,G;AACA,uC;AACA,G;AACA,mB;AACA,mC;AACA,uE;AACA,yD;;AAEA,S;AACA,0D;AACA,4C;AACA,E;AACA,C;;AAEA,G;AACA,kD;AACA,G;AACA,sB;AACA,kF;AACA,kG;AACA,W;AACA,iB;AACA,E;AACA,C;;AAEA,wC;AACA,oB;;AAEA,gC;;AAEA,kG;AACA,0F;AACA,8E;AACA,6C;AACA,8E;AACA,8B;;AAEA,sD;AACA,2C;AACA,kC;AACA,qE;;AAEA,wD;AACA,uD;;AAEA,8B;AACA,U;AACA,uE;AACA,2D;;AAEA,wD;AACA,6C;;AAEA,2B;AACA,uD;AACA,mB;;AAEA,Q;AACA,kE;AACA,gB;;AAEA,+B;AACA,+B;AACA,6B;;AAEA,W;AACA,uC;AACA,sD;AACA,4B;AACA,kB;AACA,8C;AACA,O;;AAEA,oC;AACA,e;;AAEA,0C;AACA,qB;AACA,M;AACA,S;AACA,I;AACA,G;AACA,E;AACA,iC;AACA,E;;;AAGA,oC;;;;AAIA,gB;AACA,8D;AACA,M;AACA,gC;AACA,O;AACA,C;AACA,4B;;AAEA,oE;AACA,8B;AACA,uC;;AAEA,sD;AACA,mB;AACA,yB;AACA,+B;;AAEA,qD;AACA,8B;AACA,oD;AACA,S;AACA,E;;AAEA,S;AACA,uC;AACA,6C;AACA,4F;AACA,kD;;AAEA,gD;AACA,kB;AACA,iE;AACA,+D;AACA,gB;AACA,sF;;AAEA,+D;AACA,c;AACA,uE;AACA,4D;AACA,mB;AACA,uB;AACA,G;AACA,E;;AAEA,+B;AACA,G;;;;;AAKA,a;AACA,2C;;AAEA,oE;AACA,qC;AACA,kB;AACA,+B;AACA,O;AACA,mB;AACA,gB;AACA,iC;AACA,G;AACA,E;;AAEA,uC;AACA,Y;AACA,K;;;AAGA,G;AACA,6C;AACA,G;AACA,sC;AACA,mE;AACA,iC;;AAEA,oF;AACA,0C;AACA,S;;AAEA,+E;AACA,wE;AACA,E;;;AAGA,6C;AACA,yB;;AAEA,sC;AACA,qD;AACA,wC;AACA,mD;;AAEA,sE;;AAEA,mC;;AAEA,mC;AACA,Q;AACA,mC;AACA,+B;AACA,6B;AACA,gE;AACA,kC;AACA,qD;AACA,U;AACA,kB;;AAEA,yD;AACA,kC;;AAEA,U;AACA,oB;AACA,G;AACA,E;;AAEA,a;AACA,C;;AAEA,sC;AACA,mC;AACA,U;AACA,sB;;AAEA,mE;AACA,+D;AACA,Y;AACA,G;AACA,4B;AACA,gB;AACA,G;AACA,E;;AAEA,a;AACA,C;;AAEA,wE;AACA,oC;AACA,S;AACA,E;;AAEA,oB;AACA,+B;;AAEA,yE;AACA,mE;AACA,yB;;AAEA,mE;AACA,kE;AACA,uC;;AAEA,0E;AACA,sE;AACA,yE;;AAEA,2E;AACA,kC;AACA,4G;AACA,S;AACA,E;;AAEA,a;AACA,0E;AACA,gC;AACA,iB;AACA,gE;AACA,U;AACA,oB;AACA,G;AACA,E;;AAEA,sB;AACA,uE;AACA,uC;AACA,sD;AACA,E;;AAEA,iF;AACA,+C;AACA,gE;AACA,c;AACA,oD;AACA,U;AACA,8D;AACA,G;AACA,E;;AAEA,yB;;AAEA,kF;AACA,iF;AACA,S;AACA,c;AACA,0B;AACA,uB;AACA,G;;AAEA,6B;AACA,E;;AAEA,4B;AACA,+C;AACA,E;;AAEA,2E;AACA,oC;AACA,kC;;AAEA,0C;AACA,0B;;AAEA,0C;AACA,sB;;AAEA,yC;AACA,+C;AACA,G;AACA,S;AACA,kB;AACA,E;;AAEA,Y;AACA,C;;AAEA,gD;AACA,oC;AACA,S;AACA,E;;AAEA,kB;AACA,yB;;AAEA,yC;AACA,uC;AACA,wD;;AAEA,mE;AACA,yB;AACA,sB;AACA,S;AACA,E;;AAEA,c;;AAEA,mD;;AAEA,oB;;AAEA,iE;AACA,mC;;AAEA,sD;AACA,8B;AACA,qB;AACA,Y;;AAEA,mF;AACA,qC;AACA,+B;AACA,sB;AACA,a;AACA,6B;AACA,M;AACA,K;AACA,W;AACA,uC;AACA,oE;AACA,2C;AACA,kE;AACA,+C;AACA,uD;AACA,+D;AACA,I;;AAEA,mB;AACA,kB;AACA,gC;AACA,I;;AAEA,gE;AACA,mD;AACA,kF;AACA,W;AACA,I;AACA,G;AACA,E;;AAEA,wC;AACA,c;AACA,0B;;AAEA,mE;AACA,uC;AACA,4C;AACA,U;AACA,G;AACA,E;;AAEA,qB;AACA,gB;AACA,qC;;AAEA,2F;AACA,2B;AACA,+D;AACA,2B;AACA,qB;;AAEA,6B;AACA,S;AACA,qB;AACA,E;AACA,C;;AAEA,e;AACA,W;;AAEA,gF;AACA,yE;AACA,U;AACA,kB;AACA,iB;AACA,yE;AACA,yD;AACA,G;;AAEA,4B;AACA,uF;AACA,8C;AACA,G;;AAEA,qC;AACA,0C;AACA,G;;AAEA,qC;AACA,0C;AACA,G;;AAEA,0B;AACA,sC;AACA,gD;AACA,G;;AAEA,sC;AACA,gD;AACA,E;AACA,G;;AAEA,kB;AACA,+B;AACA,oB;AACA,kB;AACA,mC;;AAEA,gE;AACA,iD;;AAEA,oB;AACA,4B;AACA,uB;AACA,+B;;AAEA,wE;AACA,sB;AACA,oB;;AAEA,uB;AACA,gD;AACA,yB;AACA,8B;AACA,6C;AACA,iD;AACA,6C;AACA,Q;AACA,O;AACA,M;AACA,+C;AACA,K;AACA,I;;AAEA,e;AACA,G;;AAEA,yB;AACA,kC;AACA,gC;AACA,6B;AACA,M;AACA,G;;AAEA,+B;;AAEA,oB;AACA,yB;AACA,oC;AACA,O;;AAEA,oB;AACA,mD;AACA,sE;AACA,G;;AAEA,8B;AACA,+B;AACA,kC;AACA,K;AACA,E;AACA,G;;;AAGA,e;AACA,sC;AACA,Y;;AAEA,e;AACA,qC;AACA,sC;;AAEA,sE;AACA,gB;AACA,2C;AACA,gE;AACA,Y;AACA,wB;AACA,K;AACA,I;AACA,sB;AACA,G;AACA,G;;AAEA,kC;AACA,sB;;AAEA,yC;AACA,8B;AACA,sB;AACA,4C;AACA,sB;AACA,iC;AACA,K;;AAEA,qE;AACA,8B;AACA,sB;AACA,iB;AACA,G;;AAEA,a;;AAEA,gE;AACA,4B;AACA,yB;AACA,kC;AACA,I;;AAEA,2C;AACA,qB;AACA,gC;AACA,G;;AAEA,gC;AACA,sB;AACA,G;AACA,G;;AAEA,mG;AACA,sC;AACA,gC;AACA,gE;AACA,0D;AACA,+C;AACA,oC;AACA,K;AACA,K;AACA,E;AACA,G;;AAEA,kB;AACA,gC;AACA,iB;;AAEA,mC;AACA,e;AACA,e;AACA,Y;AACA,G;;AAEA,oC;AACA,wC;AACA,G;;AAEA,6B;AACA,S;AACA,yB;AACA,iD;;AAEA,oC;AACA,qC;;AAEA,uD;AACA,kC;AACA,K;AACA,M;AACA,G;AACA,4B;AACA,+B;AACA,gC;AACA,K;AACA,G;AACA,+B;AACA,wC;AACA,G;AACA,wD;AACA,2C;AACA,iC;AACA,U;AACA,a;AACA,6B;AACA,mB;AACA,mB;AACA,yB;AACA,yB;AACA,iD;AACA,K;AACA,K;;AAEA,mC;AACA,c;AACA,oB;AACA,G;AACA,sB;;AAEA,iB;AACA,4D;AACA,4B;AACA,Y;AACA,6B;AACA,I;AACA,G;AACA,Y;AACA,8B;AACA,E;AACA,G;AACA,0D;;AAEA,qD;;AAEA,qC;AACA,0D;AACA,kD;AACA,oB;AACA,kG;AACA,G;;;;AAIA,+D;AACA,4D;AACA,0F;AACA,W;AACA,wB;AACA,qB;;AAEA,oB;AACA,yC;AACA,mB;AACA,oB;AACA,8D;AACA,G;;AAEA,kB;AACA,oC;AACA,mB;;AAEA,sC;AACA,c;AACA,G;;AAEA,e;AACA,gD;AACA,e;AACA,4B;AACA,c;;AAEA,8C;AACA,W;AACA,c;AACA,uC;AACA,+C;AACA,M;AACA,I;AACA,G;;AAEA,a;AACA,8B;AACA,sF;AACA,I;AACA,G;AACA,E;;AAEA,mB;AACA,S;;AAEA,S;AACA,Q;AACA,qB;AACA,2C;AACA,E;AACA,+C;;;;AAIA,a;AACA,uB;AACA,+C;AACA,wC;AACA,+C;;AAEA,S;AACA,sF;;AAEA,wD;AACA,2D;;AAEA,+D;AACA,yC;AACA,6D;;AAEA,sE;AACA,yC;AACA,qE;;AAEA,+D;AACA,kD;AACA,qB;AACA,kF;;AAEA,4D;AACA,mD;AACA,yB;AACA,sB;AACA,+B;AACA,uC;;AAEA,qE;AACA,sB;AACA,0C;AACA,yE;;AAEA,4E;AACA,6B;AACA,oE;;AAEA,0D;AACA,iE;AACA,gF;;AAEA,iB;AACA,2E;AACA,oF;AACA,6B;AACA,yB;AACA,0C;AACA,gC;AACA,K;;AAEA,gC;AACA,E;;AAEA,oE;AACA,qC;AACA,kB;AACA,+B;AACA,O;AACA,mB;AACA,gB;AACA,iC;AACA,G;AACA,E;AACA,K;;;AAGA,a;AACA,kB;AACA,wC;;AAEA,+E;AACA,4D;AACA,uB;;AAEA,4D;AACA,gF;AACA,sC;AACA,4E;AACA,G;AACA,E;;AAEA,uC;AACA,Y;AACA,K;;;AAGA,gD;AACA,oB;AACA,sD;AACA,iD;AACA,yC;;AAEA,uB;AACA,a;AACA,C;;AAEA,wB;AACA,c;AACA,C;;AAEA,8B;AACA,M;AACA,gC;AACA,oB;AACA,C;;AAEA,E;AACA,4E;AACA,iE;AACA,G;AACA,gB;;AAEA,Y;;AAEA,wD;AACA,kC;AACA,mC;AACA,wC;AACA,mC;;AAEA,kF;AACA,oB;AACA,U;AACA,G;;AAEA,uE;AACA,0B;AACA,yB;AACA,iC;AACA,mC;AACA,G;;AAEA,6E;AACA,wB;AACA,gC;AACA,G;;AAEA,8E;AACA,sC;AACA,iC;AACA,G;AACA,2C;AACA,kD;AACA,+D;AACA,wD;AACA,wF;AACA,iE;AACA,e;AACA,K;AACA,gG;AACA,2B;AACA,G;;AAEA,gD;AACA,uD;AACA,mB;AACA,iB;AACA,+C;AACA,4B;AACA,qD;;AAEA,kE;AACA,iB;AACA,a;AACA,I;;AAEA,oF;AACA,gD;;AAEA,iF;AACA,yE;;AAEA,8C;AACA,gD;;AAEA,+C;AACA,8B;AACA,e;AACA,uB;AACA,e;AACA,qB;AACA,uB;AACA,uB;AACA,8E;AACA,mC;AACA,oB;;AAEA,qD;AACA,wC;AACA,mC;AACA,+B;;AAEA,wF;AACA,kG;AACA,oD;AACA,mC;AACA,wD;;AAEA,qC;AACA,mD;AACA,M;AACA,K;AACA,I;;AAEA,uB;AACA,wC;;AAEA,oC;AACA,2C;AACA,K;AACA,I;;AAEA,2D;AACA,oB;AACA,8D;AACA,W;AACA,+B;AACA,I;;AAEA,4E;AACA,sC;AACA,G;;AAEA,+C;AACA,c;AACA,G;;AAEA,oD;AACA,kE;AACA,wB;AACA,wB;AACA,2B;AACA,wB;AACA,6D;;AAEA,mD;AACA,U;AACA,G;;AAEA,+D;AACA,uD;AACA,mB;AACA,iB;AACA,+C;AACA,4B;AACA,qD;;AAEA,wE;AACA,iB;AACA,4B;AACA,6E;AACA,K;AACA,a;AACA,I;;AAEA,gD;AACA,yE;AACA,mC;AACA,0F;;AAEA,4B;AACA,mC;AACA,kB;AACA,8B;;AAEA,8D;AACA,uD;AACA,mD;AACA,oG;AACA,6B;;AAEA,gC;AACA,+B;AACA,M;AACA,4B;AACA,6C;AACA,M;AACA,K;AACA,I;;AAEA,qF;AACA,uF;AACA,yC;AACA,sG;AACA,uD;AACA,K;;AAEA,0B;AACA,I;AACA,G;;AAEA,8C;AACA,yC;AACA,0B;;AAEA,0E;AACA,iC;AACA,wC;AACA,G;AACA,G;;AAEA,uD;AACA,0B;AACA,+B;AACA,oC;AACA,4D;AACA,oF;;AAEA,sC;;AAEA,8C;AACA,qD;AACA,U;AACA,G;;AAEA,6E;AACA,4D;AACA,U;AACA,G;;AAEA,iC;AACA,yE;AACA,gC;AACA,6B;AACA,qB;AACA,G;AACA,gD;;AAEA,mF;AACA,mC;AACA,U;AACA,gE;;AAEA,2E;AACA,yC;AACA,yC;AACA,wC;AACA,2E;AACA,Q;;AAEA,kD;AACA,2B;AACA,wB;AACA,uB;AACA,G;;AAEA,iF;AACA,uB;AACA,c;AACA,uC;;AAEA,mD;AACA,+C;AACA,4F;AACA,U;AACA,G;;AAEA,6E;AACA,wF;AACA,yE;;AAEA,6C;AACA,kD;AACA,yB;AACA,I;AACA,wC;AACA,0B;AACA,c;AACA,I;;AAEA,iF;AACA,oD;AACA,oE;AACA,I;AACA,G;;AAEA,oC;AACA,Q;AACA,qE;;AAEA,uB;AACA,gB;AACA,6B;;AAEA,oB;AACA,mG;AACA,kB;AACA,8B;AACA,I;;AAEA,oB;AACA,oC;AACA,8D;AACA,6C;AACA,mC;AACA,4B;AACA,K;AACA,I;AACA,G;AACA,oB;;AAEA,sD;AACA,uD;;AAEA,2F;AACA,iC;;AAEA,mF;AACA,2E;AACA,mF;AACA,+D;;AAEA,qE;AACA,0B;;AAEA,iB;AACA,4B;AACA,M;;AAEA,kF;AACA,mC;AACA,U;AACA,qB;AACA,oB;AACA,iE;AACA,mE;AACA,M;AACA,wC;;AAEA,iB;AACA,2B;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,sB;AACA,G;;AAEA,8B;;AAEA,8D;AACA,oC;;AAEA,oC;AACA,qB;AACA,kC;AACA,2E;AACA,sD;;AAEA,yE;AACA,kB;AACA,8B;;AAEA,8E;AACA,mF;AACA,U;AACA,G;;AAEA,uB;AACA,qE;;AAEA,sE;AACA,Q;AACA,8E;AACA,sC;;AAEA,S;AACA,8F;;AAEA,2D;AACA,uG;AACA,kF;;AAEA,iC;AACA,iC;;AAEA,6F;AACA,oC;;AAEA,+B;AACA,6C;AACA,8B;AACA,+B;AACA,O;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,mD;AACA,+B;AACA,4C;AACA,G;;AAEA,sB;AACA,G;;AAEA,wC;AACA,iC;AACA,qB;AACA,0C;AACA,sB;;AAEA,2B;AACA,iD;AACA,qD;AACA,qF;;AAEA,6B;AACA,wD;AACA,6B;;AAEA,wC;AACA,+E;AACA,oF;AACA,kB;AACA,4C;AACA,gC;;AAEA,iE;AACA,qC;;AAEA,2C;AACA,gD;AACA,+C;AACA,uD;AACA,O;AACA,6B;AACA,iC;AACA,O;AACA,M;AACA,4B;AACA,0D;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,gD;AACA,0C;AACA,gF;AACA,G;;AAEA,sB;AACA,G;;AAEA,yB;AACA,kC;AACA,gB;AACA,G;;AAEA,6E;AACA,oB;AACA,qB;AACA,yB;AACA,mC;;AAEA,mB;AACA,oC;AACA,gD;AACA,4C;AACA,O;AACA,G;AACA,yE;;AAEA,4C;;AAEA,kB;AACA,iB;AACA,oB;AACA,yC;AACA,G;;AAEA,kB;AACA,gC;AACA,wB;AACA,uD;AACA,G;;AAEA,iC;AACA,oD;AACA,sC;AACA,0C;AACA,G;;AAEA,kB;AACA,2E;AACA,kC;;AAEA,yE;AACA,G;;AAEA,+D;AACA,2I;;AAEA,c;;AAEA,Y;AACA,gD;AACA,uC;;AAEA,8B;AACA,+B;AACA,mF;AACA,I;;AAEA,gB;AACA,G;AACA,G;;AAEA,c;AACA,uH;AACA,uC;AACA,2B;AACA,6B;AACA,uC;;AAEA,0D;AACA,2D;AACA,sD;AACA,mC;AACA,yB;;AAEA,2J;AACA,2J;AACA,I;;AAEA,qC;AACA,+C;AACA,0F;AACA,I;;AAEA,gE;AACA,qD;AACA,gD;AACA,mF;AACA,I;;AAEA,gB;AACA,G;AACA,G;;AAEA,W;AACA,S;AACA,sE;AACA,iB;AACA,I;AACA,U;AACA,qE;AACA,wB;AACA,uD;AACA,U;AACA,mB;AACA,mB;AACA,oB;AACA,sB;AACA,gE;AACA,wC;AACA,M;AACA,K;AACA,K;AACA,0B;AACA,I;AACA,S;AACA,wB;AACA,sD;AACA,iB;AACA,kB;AACA,K;AACA,K;AACA,2B;AACA,I;AACA,U;AACA,oE;AACA,wB;AACA,uF;AACA,kB;AACA,kB;AACA,K;AACA,K;;AAEA,wE;AACA,gC;AACA,gD;AACA,I;AACA,I;;AAEA,iB;AACA,oC;;AAEA,2B;AACA,iE;AACA,8D;AACA,oD;AACA,K;AACA,I;AACA,G;AACA,G;;AAEA,kD;AACA,4D;AACA,oE;AACA,uE;AACA,wB;AACA,sB;AACA,S;AACA,I;AACA,e;AACA,sB;AACA,qB;AACA,I;AACA,I;AACA,iB;AACA,yC;AACA,U;AACA,yC;AACA,G;AACA,iC;AACA,0B;AACA,G;AACA,E;AACA,E;;AAEA,mD;AACA,iC;AACA,mC;AACA,mD;AACA,G;AACA,I;AACA,iC;AACA,yB;;AAEA,2B;;AAEA,sE;AACA,gG;AACA,gD;AACA,wB;AACA,I;;AAEA,oC;AACA,G;AACA,G;;AAEA,uC;AACA,iD;AACA,yC;AACA,wC;AACA,E;;AAEA,gB;AACA,yB;AACA,2B;AACA,uB;;AAEA,sE;AACA,iE;AACA,mD;AACA,yC;AACA,qC;AACA,+B;AACA,e;AACA,e;;AAEA,c;AACA,S;AACA,kB;AACA,E;;AAEA,4D;AACA,e;AACA,+B;AACA,E;;AAEA,yD;AACA,uD;;AAEA,oB;AACA,+B;AACA,E;;AAEA,uF;AACA,oF;AACA,0B;AACA,iC;AACA,mC;AACA,4C;;AAEA,6B;AACA,6B;;AAEA,uC;AACA,a;AACA,U;AACA,G;;AAEA,2D;AACA,2B;AACA,sB;;AAEA,gB;AACA,0E;AACA,U;AACA,yB;AACA,G;AACA,G;AACA,8B;AACA,6B;;AAEA,yC;AACA,a;AACA,U;AACA,G;AACA,4D;AACA,4B;AACA,uB;AACA,G;;AAEA,gB;AACA,gE;AACA,wB;AACA,G;AACA,uC;AACA,6B;;AAEA,kD;;AAEA,0C;AACA,gC;AACA,G;;AAEA,yB;AACA,E;AACA,E;;AAEA,2E;AACA,a;AACA,yB;AACA,wB;AACA,6B;AACA,2B;AACA,0B;AACA,iC;AACA,oB;AACA,gB;;AAEA,6B;AACA,W;AACA,kB;AACA,kC;AACA,gC;;AAEA,4E;AACA,uE;AACA,mF;AACA,oC;AACA,qD;AACA,qB;AACA,I;AACA,c;AACA,G;AACA,G;AACA,G;;AAEA,uB;AACA,+B;;AAEA,gC;AACA,qB;AACA,qD;AACA,2C;AACA,iB;AACA,I;;AAEA,mF;AACA,4E;AACA,+D;AACA,wB;AACA,0G;AACA,2D;AACA,kE;AACA,kC;AACA,Q;AACA,iD;AACA,K;AACA,M;AACA,4D;AACA,I;;AAEA,mC;AACA,qE;AACA,gC;AACA,gC;AACA,gD;AACA,qE;AACA,K;AACA,I;AACA,I;;AAEA,wB;AACA,qD;AACA,2C;AACA,iB;AACA,I;;AAEA,0F;AACA,2C;AACA,G;AACA,G;AACA,C;;AAEA,8C;AACA,+B;;AAEA,gC;;AAEA,qB;;AAEA,4C;AACA,8E;AACA,4E;AACA,0E;AACA,8D;AACA,0E;AACA,6D;AACA,iC;AACA,O;AACA,Q;AACA,iE;AACA,qD;AACA,kC;AACA,O;AACA,0D;AACA,2D;AACA,Q;AACA,K;AACA,iB;AACA,I;AACA,qE;AACA,oE;AACA,wB;;AAEA,uF;AACA,kE;AACA,wE;AACA,uE;AACA,O;AACA,Q;AACA,iD;AACA,K;AACA,M;AACA,I;;AAEA,6B;AACA,2B;;AAEA,uF;AACA,wH;AACA,4D;AACA,I;AACA,I;;AAEA,wB;AACA,2C;;AAEA,4C;AACA,G;AACA,G;AACA,C;;AAEA,0C;AACA,gC;AACA,4E;;AAEA,2F;AACA,mC;AACA,gF;AACA,K;;AAEA,iC;AACA,sB;AACA,yC;AACA,yC;;AAEA,sB;AACA,iD;AACA,K;AACA,oD;AACA,K;AACA,yB;AACA,yC;AACA,6C;;AAEA,sB;AACA,oD;AACA,oC;AACA,Y;AACA,wC;AACA,K;AACA,I;AACA,I;AACA,I;AACA,C;;AAEA,kB;;AAEA,8D;AACA,mB;;AAEA,yC;AACA,oC;AACA,sC;AACA,wC;AACA,6B;AACA,4B;AACA,yB;AACA,I;AACA,0B;AACA,wD;AACA,I;AACA,e;AACA,G;;AAEA,qC;AACA,mB;AACA,iB;AACA,+B;AACA,4B;AACA,wC;AACA,8B;AACA,c;AACA,qB;AACA,W;AACA,0B;AACA,c;AACA,oB;AACA,yB;AACA,I;AACA,G;AACA,uB;AACA,oB;AACA,qB;AACA,e;AACA,G;;AAEA,oB;AACA,e;AACA,2B;AACA,0D;AACA,0B;AACA,2C;AACA,K;AACA,qD;AACA,4D;AACA,G;AACA,gC;AACA,uD;AACA,K;AACA,G;AACA,6C;AACA,iD;AACA,G;AACA,uC;AACA,sB;AACA,2D;AACA,wC;AACA,+B;AACA,sC;AACA,8F;AACA,uB;AACA,qB;AACA,K;AACA,e;AACA,G;AACA,oC;AACA,mC;AACA,0B;AACA,8C;AACA,I;AACA,e;AACA,G;AACA,+D;AACA,sB;AACA,iB;AACA,wB;AACA,G;AACA,uB;AACA,oB;AACA,G;AACA,+B;AACA,oD;AACA,K;AACA,G;;AAEA,kC;AACA,+B;AACA,4C;AACA,K;AACA,G;AACA,yC;AACA,qB;AACA,e;AACA,yD;AACA,G;AACA,E;AACA,G;;;AAGA,yC;AACA,mC;AACA,+C;;AAEA,gC;AACA,yB;AACA,0B;AACA,c;AACA,K;AACA,G;AACA,E;AACA,iB;AACA,C;;AAEA,uG;AACA,4E;AACA,8C;AACA,iE;AACA,6B;AACA,uF;AACA,wB;AACA,oB;AACA,qB;AACA,0C;AACA,gC;AACA,gD;AACA,2C;AACA,mC;AACA,2D;;AAEA,yD;AACA,Y;AACA,6D;AACA,6C;AACA,iC;AACA,wC;AACA,sC;AACA,kD;AACA,wE;AACA,2D;;AAEA,4E;AACA,yE;AACA,8E;AACA,G;AACA,+C;AACA,yE;;AAEA,kC;AACA,mF;AACA,wB;;AAEA,iC;AACA,iB;AACA,Q;AACA,6G;AACA,8F;AACA,a;;AAEA,gB;AACA,6F;AACA,gD;AACA,uB;AACA,W;AACA,+C;AACA,I;AACA,G;AACA,E;;AAEA,qE;AACA,sC;AACA,Q;AACA,C;;AAEA,2D;AACA,oC;AACA,0C;AACA,qC;AACA,E;AACA,C;;AAEA,gB;AACA,uC;AACA,8C;AACA,2C;AACA,mF;;AAEA,0C;AACA,kE;AACA,O;AACA,C;;AAEA,kF;AACA,gC;AACA,2E;AACA,a;AACA,C;AACA,gC;AACA,iD;AACA,e;AACA,uB;AACA,S;AACA,+B;AACA,E;AACA,a;AACA,C;;AAEA,gD;AACA,8C;AACA,U;AACA,Q;AACA,2C;AACA,mG;AACA,E;AACA,C;;AAEA,sC;;AAEA,uD;AACA,S;AACA,E;;AAEA,gB;AACA,gC;AACA,0C;AACA,0B;;AAEA,gB;AACA,wB;AACA,sB;;AAEA,0B;AACA,yD;AACA,wD;AACA,I;AACA,G;AACA,E;;AAEA,+D;AACA,sB;AACA,mD;AACA,E;AACA,C;;AAEA,0C;AACA,uB;;AAEA,kD;AACA,6B;AACA,S;AACA,E;;AAEA,wC;;AAEA,mE;AACA,yD;AACA,8B;;AAEA,4B;AACA,8C;AACA,G;;AAEA,gF;AACA,yC;AACA,E;;AAEA,iF;AACA,yD;AACA,wC;AACA,wB;;AAEA,uE;AACA,qE;AACA,sC;AACA,0B;AACA,kC;AACA,G;;AAEA,kE;AACA,oE;AACA,2D;AACA,2D;AACA,kF;AACA,kC;AACA,G;;AAEA,wE;AACA,kE;AACA,kE;AACA,oE;;AAEA,mD;;AAEA,gE;AACA,6D;AACA,mC;AACA,0B;AACA,G;;AAEA,qE;AACA,8B;AACA,sC;AACA,6D;;AAEA,iE;AACA,uC;AACA,gE;AACA,uC;AACA,E;AACA,C;;AAEA,e;AACA,4D;AACA,gD;AACA,wD;;AAEA,yG;AACA,kC;;AAEA,kE;AACA,U;AACA,0C;AACA,6D;AACA,G;;AAEA,4D;AACA,+E;;AAEA,yF;AACA,kC;AACA,gC;;AAEA,+B;AACA,wD;AACA,gE;AACA,4B;AACA,iD;AACA,K;AACA,I;AACA,G;;AAEA,mD;AACA,wB;AACA,6B;AACA,gD;AACA,mD;;AAEA,yD;AACA,6C;AACA,K;AACA,W;AACA,kC;AACA,I;AACA,G;;AAEA,uC;AACA,2C;AACA,kC;AACA,sE;AACA,G;;AAEA,2C;;AAEA,0B;AACA,e;AACA,G;;AAEA,gE;AACA,wB;AACA,yB;AACA,oB;;AAEA,4B;AACA,wC;;AAEA,c;AACA,S;;AAEA,wB;AACA,qB;;AAEA,8B;;AAEA,yB;AACA,6C;AACA,4D;;AAEA,wC;AACA,uC;AACA,kD;;AAEA,kC;AACA,Y;AACA,mE;;AAEA,6C;AACA,oE;AACA,+C;;AAEA,gF;;AAEA,qD;AACA,iB;AACA,oB;AACA,0B;AACA,M;;AAEA,qD;AACA,2E;AACA,iF;AACA,M;;AAEA,6D;AACA,4B;;AAEA,0D;AACA,sD;AACA,uB;;AAEA,8C;AACA,sD;AACA,a;AACA,U;;AAEA,yC;AACA,qB;AACA,oG;AACA,kC;AACA,Q;AACA,O;AACA,M;;AAEA,2C;;AAEA,wC;AACA,0B;;AAEA,4B;AACA,+B;AACA,wC;AACA,M;;AAEA,2D;AACA,0B;AACA,K;AACA,I;AACA,G;;AAEA,6C;AACA,c;AACA,2B;AACA,G;;AAEA,uD;AACA,sD;AACA,iC;AACA,8D;AACA,G;;AAEA,Q;AACA,mC;;AAEA,0E;AACA,sC;AACA,iE;AACA,a;AACA,I;;AAEA,0D;;AAEA,wB;AACA,sD;;AAEA,wC;AACA,oB;AACA,yB;AACA,I;;AAEA,yB;AACA,mB;AACA,U;AACA,mC;AACA,iD;AACA,2B;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,a;;AAEA,c;AACA,G;;AAEA,0D;AACA,2B;AACA,S;AACA,gC;AACA,wB;AACA,yC;AACA,kC;;AAEA,4C;AACA,mD;;AAEA,6B;AACA,6B;;AAEA,iB;AACA,yB;AACA,mC;AACA,+B;AACA,0C;;AAEA,oE;AACA,e;AACA,sD;AACA,Q;AACA,O;AACA,M;;AAEA,8E;AACA,yB;;AAEA,yB;;AAEA,sE;AACA,uE;AACA,0C;AACA,4B;AACA,kC;;AAEA,kE;AACA,2C;;AAEA,c;AACA,kC;AACA,O;;AAEA,4B;AACA,M;AACA,K;AACA,I;AACA,G;AACA,E;AACA,G;;AAEA,kB;AACA,0B;AACA,0C;AACA,+B;AACA,yB;AACA,oG;AACA,qC;AACA,G;;AAEA,qB;AACA,qD;AACA,8E;AACA,kD;AACA,+B;AACA,I;AACA,K;AACA,G;;AAEA,sB;AACA,qD;AACA,8E;AACA,kD;AACA,mD;AACA,I;AACA,K;AACA,G;;AAEA,qB;AACA,qD;AACA,2B;AACA,+C;AACA,I;AACA,K;AACA,G;;AAEA,oB;AACA,qD;AACA,2B;AACA,2D;AACA,I;AACA,K;AACA,G;;AAEA,iE;AACA,W;AACA,6D;AACA,S;;AAEA,4C;;AAEA,4C;AACA,uC;AACA,I;;AAEA,2B;AACA,oE;AACA,+C;AACA,K;AACA,wC;AACA,I;AACA,G;;AAEA,c;AACA,G;;AAEA,oB;AACA,W;AACA,S;;AAEA,2C;AACA,mD;AACA,+B;AACA,8C;AACA,I;;AAEA,gC;AACA,8B;AACA,wC;AACA,I;;AAEA,iE;AACA,mB;AACA,6D;AACA,4B;AACA,I;AACA,G;;AAEA,c;AACA,G;;AAEA,sD;AACA,gE;AACA,oF;;AAEA,8B;AACA,iE;AACA,K;AACA,G;;AAEA,0B;AACA,0C;AACA,8B;AACA,U;AACA,oB;;AAEA,+B;AACA,gC;AACA,kD;AACA,e;AACA,I;;AAEA,0D;AACA,mE;AACA,gE;AACA,yE;AACA,6E;;AAEA,oD;;AAEA,S;AACA,0B;AACA,sD;AACA,2B;AACA,kC;AACA,iD;AACA,8B;AACA,O;AACA,M;;AAEA,c;;AAEA,sE;AACA,iB;AACA,I;;AAEA,gB;AACA,iC;AACA,I;AACA,qC;AACA,G;;AAEA,0B;AACA,2B;;AAEA,0E;AACA,8C;AACA,yB;;AAEA,sC;;AAEA,e;AACA,mC;AACA,I;AACA,K;;AAEA,2E;AACA,oE;AACA,G;;AAEA,+B;AACA,uC;AACA,G;;AAEA,uC;;AAEA,8B;AACA,kC;;AAEA,8B;AACA,0B;AACA,S;AACA,mB;AACA,c;AACA,oB;AACA,mB;AACA,2C;;AAEA,iE;AACA,oB;AACA,2C;AACA,wD;AACA,uC;AACA,+B;AACA,uB;AACA,sD;AACA,K;AACA,oC;AACA,M;AACA,G;;AAEA,Y;AACA,iF;AACA,+B;;AAEA,4C;AACA,qB;AACA,I;;AAEA,iB;AACA,wE;AACA,gC;;AAEA,6F;AACA,+D;AACA,0B;AACA,qB;;AAEA,4B;AACA,8C;;AAEA,gE;AACA,yB;AACA,yD;AACA,O;AACA,M;;AAEA,uC;AACA,K;;AAEA,uB;AACA,uD;;AAEA,wB;AACA,0C;;AAEA,+D;AACA,yC;AACA,0B;AACA,iD;AACA,8E;;AAEA,wB;AACA,yE;AACA,gC;AACA,qC;AACA,S;AACA,e;AACA,mH;AACA,Q;AACA,O;AACA,M;AACA,K;;AAEA,uC;AACA,4B;AACA,I;AACA,G;;AAEA,c;AACA,E;AACA,G;;AAEA,a;AACA,oB;AACA,sB;AACA,wB;AACA,sB;AACA,0B;AACA,+B;AACA,2C;AACA,Y;AACA,S;AACA,Y;AACA,+B;AACA,4B;;AAEA,4B;AACA,gD;AACA,4C;;AAEA,sF;AACA,kC;AACA,G;;AAEA,+B;AACA,G;AACA,G;;;AAGA,W;AACA,kB;;AAEA,G;AACA,2C;AACA,+C;AACA,sC;AACA,G;AACA,yC;AACA,qC;AACA,W;AACA,kE;;AAEA,4E;AACA,uG;;AAEA,uG;AACA,sE;AACA,sD;;AAEA,iD;AACA,gE;AACA,e;;AAEA,gB;AACA,C;;AAEA,G;AACA,2D;AACA,2B;AACA,G;AACA,qC;AACA,oB;AACA,oC;;AAEA,kB;AACA,2C;;AAEA,wD;AACA,yC;;AAEA,gD;AACA,mH;;AAEA,iF;AACA,+E;;AAEA,iB;AACA,e;AACA,e;;AAEA,4C;AACA,mB;AACA,G;;AAEA,sC;AACA,oC;AACA,E;;AAEA,gB;AACA,C;;;AAGA,a;AACA,yB;;AAEA,wC;AACA,sC;AACA,8B;AACA,G;;AAEA,qC;AACA,8B;;AAEA,wB;AACA,2B;;AAEA,sD;AACA,+B;AACA,kE;AACA,U;AACA,G;;AAEA,U;AACA,wC;AACA,8C;AACA,6F;AACA,mD;;AAEA,iB;AACA,6D;AACA,iD;AACA,oD;AACA,sB;AACA,uC;AACA,+B;AACA,mE;AACA,+D;AACA,mC;AACA,0E;AACA,+C;AACA,G;;AAEA,gC;;AAEA,6B;AACA,G;;AAEA,K;AACA,0B;;AAEA,mE;;;;AAIA,sB;AACA,yC;;AAEA,gC;AACA,+B;AACA,oD;AACA,4C;AACA,iF;AACA,gD;AACA,wE;AACA,G;;AAEA,+C;AACA,G;;AAEA,4C;AACA,qC;AACA,sB;;AAEA,2C;;AAEA,0E;AACA,qF;;AAEA,mB;;AAEA,sE;AACA,qC;AACA,I;;AAEA,qD;AACA,+F;AACA,kH;AACA,0F;AACA,yD;;AAEA,mC;AACA,wB;AACA,8B;AACA,8B;;AAEA,wD;AACA,wD;AACA,yB;;AAEA,gC;AACA,wB;AACA,8B;AACA,8B;AACA,I;AACA,G;;AAEA,gB;AACA,2C;AACA,4B;AACA,Q;AACA,Y;AACA,G;AACA,qD;AACA,+B;AACA,2B;AACA,G;;AAEA,4C;AACA,4B;AACA,sB;;AAEA,2C;AACA,gD;;AAEA,2C;AACA,gC;AACA,gD;AACA,uB;AACA,G;;AAEA,0C;AACA,qE;;AAEA,qD;AACA,0E;AACA,6F;AACA,gG;AACA,2D;;AAEA,kC;AACA,qB;AACA,0B;AACA,0B;;AAEA,uD;AACA,kB;AACA,qC;AACA,I;AACA,kD;AACA,gC;;AAEA,+B;AACA,qB;AACA,kB;AACA,qB;AACA,I;AACA,G;;AAEA,gB;AACA,2C;AACA,4B;AACA,Q;AACA,sB;AACA,G;AACA,C;;;;;AAKA,8C;AACA,wE;AACA,S;AACA,mB;AACA,iC;;AAEA,6B;AACA,qE;AACA,6C;AACA,W;AACA,I;;AAEA,qB;AACA,kF;AACA,iB;AACA,+E;AACA,oB;AACA,W;AACA,I;;AAEA,8E;;AAEA,uD;AACA,G;AACA,G;AACA,C;;;AAGA,a;AACA,kC;AACA,2D;AACA,mD;;AAEA,S;AACA,uC;AACA,sF;AACA,0C;AACA,sB;;AAEA,sD;AACA,gB;AACA,S;AACA,E;;AAEA,yC;;AAEA,iB;AACA,gE;AACA,2C;;AAEA,gC;AACA,4C;AACA,qC;;AAEA,0C;AACA,iD;AACA,sE;;AAEA,oC;AACA,4B;AACA,2E;AACA,+B;;AAEA,yB;AACA,qC;AACA,4C;AACA,wB;AACA,I;AACA,mC;AACA,I;;AAEA,iC;AACA,wC;AACA,wB;AACA,I;AACA,+B;AACA,I;;AAEA,6B;AACA,oC;AACA,wB;AACA,I;AACA,2B;AACA,I;;AAEA,yB;AACA,mC;AACA,0C;AACA,wB;AACA,I;AACA,iC;AACA,G;AACA,I;;AAEA,+B;AACA,0B;AACA,qC;;AAEA,sD;AACA,+B;AACA,kE;AACA,U;AACA,G;;AAEA,U;AACA,wC;AACA,8C;AACA,6F;AACA,mD;;AAEA,qB;AACA,sC;AACA,8B;AACA,gE;AACA,gE;AACA,wD;;AAEA,kB;AACA,gE;AACA,kD;AACA,gC;;AAEA,qE;AACA,kC;AACA,kF;AACA,yB;AACA,iF;;AAEA,0B;AACA,6D;AACA,oE;AACA,8E;AACA,iE;;AAEA,6D;AACA,+C;AACA,uC;AACA,+B;AACA,mE;AACA,uE;AACA,2D;AACA,2B;;AAEA,2B;AACA,mF;;AAEA,+B;AACA,G;;AAEA,iB;AACA,yE;AACA,uE;AACA,uE;AACA,6D;AACA,yE;AACA,wE;AACA,gE;AACA,8C;AACA,2E;AACA,8D;AACA,mC;AACA,oC;AACA,wC;AACA,+D;AACA,G;;AAEA,gC;AACA,E;;AAEA,K;;;AAGA,mF;AACA,yD;AACA,e;AACA,W;;AAEA,oD;AACA,0B;AACA,mC;AACA,uC;AACA,E;;AAEA,0C;;AAEA,yB;AACA,0B;AACA,mC;AACA,E;;AAEA,Y;AACA,E;;;AAGA,G;AACA,6B;AACA,oC;;AAEA,sG;AACA,qF;AACA,4C;AACA,uD;AACA,uD;;AAEA,4E;AACA,uB;AACA,qB;AACA,mB;AACA,G;;AAEA,8C;;;AAGA,yE;AACA,wC;;AAEA,mD;AACA,uB;AACA,c;AACA,E;;AAEA,mC;AACA,4D;AACA,kB;AACA,yB;;AAEA,gB;AACA,oC;AACA,wB;AACA,e;AACA,G;AACA,E;;AAEA,iB;AACA,C;;AAEA,qC;AACA,2B;AACA,c;AACA,Y;AACA,2B;;AAEA,oC;AACA,2B;AACA,sB;AACA,Y;AACA,G;;AAEA,uD;AACA,+B;AACA,e;AACA,gE;AACA,2C;AACA,kD;AACA,4B;AACA,I;;AAEA,gE;AACA,8D;AACA,yB;AACA,yD;AACA,wF;AACA,I;AACA,U;AACA,6B;;AAEA,oD;AACA,yF;AACA,I;AACA,G;AACA,E;;AAEA,4D;AACA,gC;AACA,6C;AACA,2B;AACA,sB;AACA,Y;AACA,G;AACA,8E;AACA,8D;AACA,G;AACA,E;;AAEA,iB;AACA,C;;AAEA,qD;AACA,uC;AACA,iB;AACA,uE;AACA,8E;AACA,Q;AACA,C;;AAEA,yE;AACA,2D;AACA,iE;AACA,K;AACA,+D;AACA,2B;;AAEA,U;;AAEA,0B;AACA,4D;AACA,6B;AACA,mE;AACA,G;;AAEA,sB;AACA,kE;AACA,+B;AACA,wE;AACA,I;;AAEA,oE;AACA,8B;AACA,iF;AACA,I;AACA,U;AACA,wD;AACA,uE;;AAEA,mE;AACA,+B;AACA,iF;AACA,I;AACA,G;AACA,E;;AAEA,Y;AACA,C;;AAEA,gD;;AAEA,2E;AACA,6B;AACA,gE;AACA,6B;AACA,qG;;AAEA,wF;AACA,6D;AACA,gE;AACA,iC;AACA,2D;AACA,qC;AACA,iC;AACA,4B;AACA,G;;AAEA,uD;AACA,8B;AACA,c;AACA,G;;AAEA,kF;AACA,wE;AACA,kG;;AAEA,8C;AACA,+B;AACA,E;;AAEA,qE;AACA,e;AACA,uB;AACA,Q;AACA,Q;AACA,mD;AACA,oB;AACA,S;AACA,G;AACA,U;AACA,C;;AAEA,e;AACA,0D;AACA,oD;AACA,Y;AACA,Y;AACA,oC;AACA,qB;AACA,uD;AACA,yC;AACA,mC;AACA,K;AACA,I;AACA,G;AACA,G;;AAEA,sE;AACA,a;AACA,sB;AACA,sB;AACA,mB;AACA,qB;AACA,qB;AACA,qB;AACA,kB;AACA,gB;AACA,kB;AACA,iB;AACA,iB;AACA,c;AACA,G;;AAEA,wD;AACA,gC;AACA,Y;AACA,iC;AACA,uD;AACA,G;;AAEA,gD;AACA,8C;AACA,+C;AACA,6E;AACA,U;AACA,G;;AAEA,qD;AACA,uB;AACA,uC;AACA,sB;;AAEA,4G;;AAEA,uC;AACA,uC;AACA,iE;;AAEA,mC;AACA,8B;AACA,uB;;AAEA,2E;AACA,8D;AACA,6E;AACA,sB;AACA,oB;AACA,I;;AAEA,+D;AACA,4C;AACA,W;AACA,I;;AAEA,oF;AACA,8D;AACA,kB;AACA,I;;AAEA,kF;AACA,4F;AACA,wF;AACA,8B;AACA,I;;AAEA,oF;AACA,kG;;AAEA,kB;AACA,uD;AACA,S;AACA,2B;AACA,iB;AACA,I;;AAEA,U;AACA,kE;AACA,4F;AACA,e;AACA,I;;AAEA,wD;AACA,wB;AACA,G;AACA,G;;AAEA,6C;AACA,sB;AACA,uC;;AAEA,qD;AACA,iH;;AAEA,uC;AACA,uC;AACA,iE;;AAEA,6D;AACA,kC;AACA,wC;AACA,G;;AAEA,mE;AACA,4B;AACA,sC;AACA,G;;AAEA,sC;AACA,yD;AACA,oC;AACA,G;;AAEA,6F;AACA,gC;AACA,2B;AACA,qE;AACA,G;AACA,a;AACA,E;AACA,G;;AAEA,wD;AACA,4B;AACA,0C;AACA,oB;AACA,yE;AACA,iF;AACA,yF;AACA,6C;AACA,mD;AACA,S;AACA,2C;AACA,I;AACA,I;;AAEA,uC;AACA,2C;AACA,iD;AACA,yB;AACA,U;AACA,U;AACA,W;AACA,0F;AACA,W;AACA,S;AACA,K;AACA,G;AACA,G;AACA,G;;AAEA,yB;AACA,4B;AACA,mC;AACA,iC;AACA,iH;AACA,6C;AACA,wB;AACA,I;;AAEA,gC;AACA,0B;AACA,qC;AACA,oF;AACA,uE;;AAEA,4D;AACA,wC;AACA,kB;;AAEA,oG;AACA,wD;AACA,yC;AACA,0D;AACA,8B;;AAEA,kF;AACA,mF;AACA,+E;AACA,sC;;AAEA,6F;AACA,iE;AACA,Y;AACA,K;AACA,I;;AAEA,sC;AACA,yC;AACA,uC;AACA,2B;AACA,G;AACA,G;AACA,C;;AAEA,wE;AACA,6B;AACA,mB;AACA,8E;AACA,wE;AACA,2D;AACA,sC;AACA,G;AACA,E;AACA,E;;AAEA,uD;AACA,a;AACA,Y;AACA,a;AACA,gB;AACA,+B;AACA,uC;AACA,6B;AACA,a;AACA,kB;;AAEA,8C;AACA,qE;;AAEA,yB;AACA,kD;AACA,gD;AACA,I;;AAEA,mB;AACA,G;AACA,G;;AAEA,iC;AACA,6D;AACA,E;AACA,G;;AAEA,kB;AACA,+B;AACA,sD;AACA,mB;AACA,a;AACA,U;;AAEA,kC;AACA,+B;AACA,sB;;AAEA,4B;AACA,qE;AACA,K;;AAEA,e;AACA,I;;AAEA,+B;AACA,uC;AACA,6B;AACA,yC;AACA,G;AACA,mB;AACA,gC;AACA,G;AACA,mB;AACA,0B;AACA,G;AACA,4B;AACA,qC;AACA,4C;AACA,G;;AAEA,+B;AACA,4B;AACA,0B;AACA,W;AACA,0B;AACA,I;AACA,K;AACA,E;AACA,G;;;AAGA,oD;AACA,qE;AACA,C;AACA,qB;;AAEA,mB;AACA,oB;AACA,2D;AACA,mB;AACA,mB;AACA,kC;AACA,yB;AACA,qC;AACA,iB;AACA,+D;AACA,G;AACA,kB;AACA,2C;;AAEA,6B;AACA,sB;AACA,wC;AACA,G;AACA,2B;AACA,Y;AACA,wC;;AAEA,gC;AACA,mD;AACA,yE;AACA,K;AACA,U;AACA,8B;AACA,G;AACA,4D;;AAEA,4B;AACA,uD;AACA,G;;AAEA,6B;AACA,qB;AACA,U;AACA,wC;AACA,G;AACA,c;AACA,E;AACA,E;;AAEA,iD;;AAEA,mB;AACA,Y;AACA,0B;AACA,c;;AAEA,2C;AACA,qE;AACA,oC;AACA,I;;AAEA,2E;AACA,sE;AACA,2D;AACA,+D;AACA,qD;AACA,mE;AACA,oD;AACA,I;AACA,0B;AACA,kF;AACA,wD;AACA,wC;AACA,0C;AACA,qI;AACA,mE;AACA,W;AACA,yC;AACA,I;AACA,G;AACA,E;AACA,E;;AAEA,kB;AACA,+D;;AAEA,0D;AACA,yB;AACA,uD;AACA,wC;AACA,G;AACA,E;AACA,E;;AAEA,iB;AACA,wB;AACA,W;AACA,G;AACA,uB;AACA,2C;AACA,E;AACA,E;;AAEA,iC;;AAEA,mC;AACA,oB;;;;;AAKA,G;AACA,gB;AACA,qC;AACA,qE;AACA,sB;AACA,4C;AACA,a;AACA,kC;AACA,+C;AACA,yB;AACA,iC;AACA,2E;;AAEA,2E;AACA,uE;AACA,mD;AACA,c;AACA,uB;;AAEA,wC;AACA,yC;AACA,8B;;AAEA,wD;AACA,wB;;AAEA,4D;AACA,yB;;AAEA,Q;AACA,yE;AACA,8F;AACA,2B;;AAEA,wB;AACA,2B;AACA,oD;;AAEA,4D;AACA,0F;AACA,2F;AACA,I;;AAEA,6B;AACA,iB;AACA,iD;AACA,sB;AACA,sE;AACA,4B;AACA,8C;AACA,iB;AACA,I;;AAEA,gB;AACA,K;AACA,G;;AAEA,0D;AACA,wB;AACA,wB;AACA,oB;AACA,I;AACA,iC;AACA,C;;AAEA,qD;AACA,sC;AACA,W;AACA,2B;AACA,Q;;AAEA,oE;AACA,0E;AACA,qC;AACA,0C;AACA,yB;AACA,gE;AACA,E;;AAEA,sB;AACA,qC;AACA,E;;AAEA,c;AACA,C;;AAEA,gD;AACA,W;AACA,oE;AACA,Y;AACA,6B;AACA,oC;AACA,uE;;AAEA,mC;AACA,gB;AACA,G;AACA,E;AACA,C;;AAEA,gD;AACA,6B;AACA,uE;AACA,c;AACA,Y;AACA,qB;AACA,6C;AACA,4C;;AAEA,gC;AACA,qB;AACA,2C;AACA,iC;AACA,sB;AACA,8B;AACA,kC;AACA,4B;AACA,e;AACA,K;AACA,K;AACA,G;AACA,mB;;AAEA,0B;AACA,oE;AACA,2B;AACA,2B;AACA,qB;AACA,+C;AACA,wB;AACA,K;AACA,M;AACA,K;AACA,E;;AAEA,8B;AACA,0E;AACA,sC;AACA,yD;AACA,qD;AACA,wC;AACA,uE;;AAEA,0D;AACA,wE;AACA,0C;;AAEA,wD;AACA,qC;AACA,mF;;AAEA,8E;;AAEA,gD;AACA,wD;AACA,2F;AACA,mC;AACA,W;AACA,mB;AACA,I;AACA,G;AACA,E;;AAEA,uB;AACA,4B;AACA,sC;AACA,2B;AACA,wC;AACA,yC;AACA,yC;AACA,M;AACA,G;AACA,E;;AAEA,kB;AACA,wB;AACA,wB;AACA,iC;AACA,wB;AACA,yC;AACA,kD;;AAEA,uI;AACA,2E;AACA,mB;AACA,Y;AACA,c;AACA,K;AACA,I;AACA,6E;;AAEA,wE;AACA,U;AACA,uB;AACA,G;AACA,E;;AAEA,uC;AACA,mB;AACA,gC;AACA,6B;AACA,I;AACA,U;AACA,iD;AACA,G;;AAEA,sE;AACA,iB;AACA,6B;AACA,G;AACA,iB;AACA,yB;AACA,U;AACA,yB;AACA,0B;AACA,M;AACA,G;AACA,wB;AACA,Y;AACA,wC;AACA,yB;AACA,6C;AACA,I;AACA,K;AACA,wB;AACA,oE;;AAEA,iC;AACA,mC;AACA,mB;AACA,6B;AACA,iE;AACA,K;AACA,I;AACA,G;;AAEA,+E;AACA,8F;AACA,0B;AACA,E;AACA,C;;AAEA,6C;AACA,uC;;AAEA,oD;AACA,yB;AACA,mC;AACA,iC;AACA,yB;AACA,kC;AACA,uB;AACA,uC;AACA,G;;AAEA,yB;AACA,yB;AACA,yB;AACA,G;;AAEA,kC;AACA,qC;AACA,iC;AACA,wB;;AAEA,mE;AACA,0E;AACA,2B;AACA,gC;AACA,qC;AACA,qC;AACA,K;AACA,I;AACA,U;AACA,kC;AACA,G;AACA,E;AACA,C;;AAEA,iD;AACA,Y;AACA,U;AACA,Y;AACA,sC;AACA,mD;AACA,gD;AACA,oB;AACA,K;AACA,qB;AACA,mB;AACA,iB;AACA,I;AACA,4C;AACA,sF;AACA,wE;AACA,+C;AACA,uB;AACA,c;AACA,qC;;AAEA,uC;AACA,6C;AACA,I;;AAEA,iE;;AAEA,iC;AACA,qB;AACA,W;AACA,gD;AACA,iB;AACA,I;AACA,I;AACA,gC;AACA,c;AACA,0C;AACA,+D;AACA,kC;AACA,4B;AACA,qC;AACA,8B;AACA,c;AACA,uC;AACA,8D;AACA,sE;AACA,mC;AACA,iB;AACA,K;AACA,8B;AACA,kB;AACA,iE;AACA,mC;AACA,oD;AACA,oB;AACA,iB;AACA,K;AACA,mB;AACA,wC;AACA,wC;AACA,K;;AAEA,4C;AACA,wB;AACA,oB;AACA,0D;AACA,Y;AACA,yD;AACA,K;AACA,gB;AACA,I;AACA,K;AACA,0B;;AAEA,mD;;AAEA,qC;AACA,uF;AACA,iB;AACA,iB;AACA,G;AACA,E;;AAEA,6C;;AAEA,mD;AACA,+C;AACA,E;;AAEA,iB;AACA,wB;AACA,c;AACA,mB;AACA,8B;AACA,I;AACA,G;;AAEA,iC;AACA,qD;AACA,uD;AACA,8B;AACA,mC;AACA,C;;AAEA,8C;AACA,uC;AACA,qC;AACA,oB;AACA,mB;AACA,U;AACA,4B;AACA,G;;AAEA,W;AACA,a;AACA,yB;;AAEA,sC;AACA,yB;AACA,6C;AACA,wC;AACA,G;AACA,G;;AAEA,2C;AACA,kB;AACA,2C;AACA,U;AACA,wC;AACA,G;AACA,E;AACA,G;;AAEA,8C;AACA,8E;AACA,kC;AACA,uC;AACA,kB;AACA,0E;AACA,G;;AAEA,qF;AACA,kG;;AAEA,qD;AACA,iD;AACA,mB;AACA,E;;AAEA,Y;AACA,wB;;AAEA,4B;AACA,uC;AACA,wB;AACA,G;;AAEA,oB;AACA,qC;AACA,G;AACA,G;;AAEA,Y;AACA,E;;AAEA,kB;AACA,kD;;AAEA,wD;AACA,2D;;AAEA,oC;AACA,6D;AACA,G;AACA,qD;AACA,2C;AACA,oD;AACA,6B;AACA,qE;AACA,oE;;AAEA,0D;AACA,oD;AACA,uB;AACA,K;AACA,K;AACA,oC;;AAEA,0C;AACA,6B;AACA,2C;AACA,G;AACA,8C;AACA,qC;AACA,yB;AACA,qB;AACA,mB;AACA,I;;AAEA,mC;AACA,wB;AACA,qB;AACA,oB;AACA,G;AACA,uC;AACA,kC;AACA,G;;AAEA,+B;AACA,sB;AACA,gD;AACA,2B;AACA,gC;;AAEA,iB;AACA,gD;AACA,gC;AACA,K;AACA,W;AACA,2B;AACA,uE;AACA,iC;AACA,M;AACA,K;AACA,I;;AAEA,4C;AACA,8F;AACA,0C;AACA,qB;AACA,+B;AACA,K;AACA,I;;AAEA,gE;AACA,6E;AACA,mC;AACA,+B;AACA,iC;AACA,I;AACA,K;AACA,G;AACA,2B;AACA,yB;AACA,uB;AACA,G;AACA,+B;AACA,a;AACA,gC;AACA,mC;AACA,wC;AACA,2B;AACA,sC;;AAEA,2C;AACA,sB;;AAEA,2B;AACA,kC;;AAEA,+B;AACA,kC;AACA,I;;AAEA,qD;AACA,4C;AACA,4E;AACA,uC;AACA,+B;AACA,K;AACA,I;;AAEA,8D;AACA,+C;AACA,oD;AACA,wC;AACA,K;AACA,I;;AAEA,6B;AACA,sB;AACA,K;AACA,E;AACA,G;;AAEA,+D;AACA,+B;AACA,0D;AACA,sD;AACA,mC;AACA,gE;AACA,G;AACA,G;;AAEA,2C;AACA,a;AACA,0B;AACA,wB;AACA,8B;AACA,6B;AACA,8B;AACA,kC;AACA,4B;AACA,0D;AACA,wD;AACA,G;AACA,G;;AAEA,mB;AACA,6B;AACA,W;AACA,yB;AACA,Q;;AAEA,sB;;AAEA,mC;AACA,sB;AACA,kD;AACA,4C;AACA,2B;AACA,G;AACA,E;;AAEA,wB;AACA,mB;AACA,E;AACA,mB;AACA,E;;AAEA,qC;AACA,6B;AACA,iB;AACA,oB;AACA,S;AACA,sB;AACA,E;AACA,E;;AAEA,wB;;AAEA,8B;AACA,kB;AACA,8D;AACA,E;AACA,E;;AAEA,6B;AACA,0B;AACA,gB;AACA,E;;AAEA,oB;AACA,W;AACA,W;AACA,iB;AACA,c;AACA,E;;;AAGA,6D;AACA,0D;AACA,0C;AACA,4D;AACA,qB;;AAEA,mD;AACA,yC;AACA,2B;AACA,2B;AACA,I;AACA,I;AACA,E;;;AAGA,a;AACA,2B;AACA,gC;;AAEA,S;AACA,uC;AACA,sC;AACA,sF;AACA,wC;;AAEA,yB;AACA,2C;AACA,8D;AACA,gD;;AAEA,6B;;AAEA,4G;AACA,iD;;AAEA,+C;AACA,8B;AACA,uD;;AAEA,0C;AACA,iC;AACA,0D;;AAEA,yE;AACA,iC;;AAEA,gF;AACA,8E;AACA,oC;;AAEA,+C;AACA,4D;;AAEA,gF;AACA,mC;AACA,wB;AACA,qC;;AAEA,qB;AACA,+C;AACA,2C;AACA,mC;AACA,sD;;AAEA,gE;AACA,mB;AACA,uC;AACA,0C;AACA,K;;;AAGA,oB;;AAEA,kB;AACA,yB;AACA,6B;AACA,kB;;AAEA,4B;AACA,gB;AACA,2F;;AAEA,wF;AACA,gB;AACA,K;;AAEA,qB;;AAEA,oC;AACA,uC;AACA,+B;AACA,wD;AACA,4B;AACA,I;;AAEA,U;AACA,G;;AAEA,0C;;AAEA,kC;AACA,W;;AAEA,+B;AACA,W;AACA,I;;AAEA,sB;AACA,sD;AACA,W;AACA,gB;AACA,I;;AAEA,2D;AACA,uB;AACA,a;AACA,0C;AACA,c;AACA,wC;AACA,8C;AACA,4C;AACA,O;AACA,I;;AAEA,0F;;AAEA,2D;AACA,wF;AACA,qB;AACA,I;AACA,K;AACA,E;AACA,G;;AAEA,e;AACA,Y;AACA,W;AACA,0B;AACA,gD;AACA,wB;AACA,U;AACA,yB;AACA,sD;AACA,wC;AACA,I;AACA,I;AACA,W;AACA,0B;AACA,sB;AACA,4B;AACA,gC;AACA,mD;AACA,8B;AACA,4C;AACA,oB;AACA,W;AACA,sB;;AAEA,4C;AACA,4B;AACA,2B;;AAEA,8D;AACA,+C;AACA,0E;AACA,+F;AACA,+F;;AAEA,8C;AACA,qC;;AAEA,+C;AACA,kB;AACA,oB;AACA,O;;AAEA,sC;AACA,2B;AACA,M;AACA,K;;AAEA,kB;AACA,K;;AAEA,iC;AACA,0B;AACA,4B;AACA,wC;AACA,wB;;AAEA,mB;AACA,2B;;AAEA,iF;;AAEA,qB;AACA,kE;AACA,sE;AACA,qC;AACA,W;AACA,0C;;AAEA,qB;;AAEA,sC;AACA,2B;AACA,O;;AAEA,a;AACA,8B;AACA,M;AACA,K;;AAEA,2E;AACA,uB;AACA,6B;AACA,K;;AAEA,mB;AACA,I;AACA,G;AACA,E;AACA,G;;AAEA,sC;AACA,iD;AACA,4B;AACA,gC;AACA,mC;AACA,+E;AACA,I;AACA,G;AACA,G;AACA,0B;AACA,kD;AACA,qB;AACA,+D;AACA,kE;AACA,I;AACA,E;AACA,G;;;;;AAKA,uB;AACA,qC;AACA,yC;AACA,2C;AACA,6B;;AAEA,kB;AACA,gC;AACA,wE;AACA,G;;AAEA,+B;AACA,+B;AACA,mC;AACA,K;AACA,E;AACA,G;;AAEA,e;AACA,sC;AACA,iB;AACA,yB;;AAEA,kE;AACA,6D;AACA,U;AACA,G;;AAEA,uD;AACA,oD;AACA,2C;AACA,G;;AAEA,iC;AACA,0C;AACA,kD;AACA,6B;AACA,sC;AACA,kE;AACA,G;;AAEA,8B;;AAEA,0B;AACA,oC;;AAEA,kG;AACA,e;;AAEA,W;AACA,0C;AACA,iB;AACA,I;;AAEA,qF;AACA,c;;AAEA,U;AACA,wC;;AAEA,oE;AACA,uB;AACA,e;AACA,Q;AACA,G;AACA,G;;AAEA,sC;AACA,qB;AACA,S;AACA,iD;;AAEA,2C;AACA,sC;AACA,8C;;AAEA,wD;AACA,gD;AACA,2C;AACA,yE;AACA,+B;AACA,qB;AACA,kE;AACA,a;AACA,qD;AACA,gC;AACA,M;;AAEA,+E;AACA,Y;AACA,mC;AACA,K;;AAEA,8D;AACA,I;AACA,G;AACA,G;;AAEA,a;AACA,S;AACA,iC;AACA,uF;AACA,oF;AACA,8E;AACA,0B;AACA,wC;AACA,iB;AACA,uB;AACA,M;AACA,kB;AACA,K;AACA,I;AACA,G;AACA,E;AACA,G;;AAEA,8B;AACA,Y;AACA,qC;AACA,0B;AACA,iD;AACA,mC;AACA,6E;AACA,oC;AACA,iF;;AAEA,qD;AACA,U;AACA,uE;AACA,G;;AAEA,c;AACA,E;AACA,E;;AAEA,8B;AACA,iF;;AAEA,qD;;AAEA,mF;AACA,iC;AACA,mB;AACA,kB;AACA,mF;AACA,gC;AACA,6B;AACA,+C;AACA,yB;AACA,U;AACA,gC;AACA,I;AACA,c;AACA,K;AACA,iC;AACA,kB;AACA,0D;AACA,yB;AACA,U;AACA,I;AACA,I;AACA,G;;AAEA,yB;AACA,yC;AACA,2B;AACA,sC;AACA,4C;AACA,wD;AACA,8B;AACA,W;AACA,sE;AACA,yD;AACA,I;AACA,G;AACA,G;AACA,C;;AAEA,6E;AACA,yB;;AAEA,uC;AACA,uC;AACA,a;AACA,sC;AACA,qD;AACA,2C;AACA,gB;AACA,0B;AACA,uD;AACA,M;AACA,I;;AAEA,2B;;AAEA,+E;AACA,mE;AACA,iB;AACA,I;AACA,G;AACA,G;;AAEA,6E;AACA,sD;AACA,iC;AACA,W;AACA,kB;AACA,sE;AACA,gB;AACA,U;AACA,I;AACA,I;;AAEA,2D;AACA,2B;AACA,+B;AACA,2C;AACA,gC;AACA,qB;AACA,I;AACA,I;AACA,mB;AACA,G;;AAEA,oD;AACA,+D;AACA,qC;AACA,sC;AACA,4D;AACA,G;AACA,G;;AAEA,0E;AACA,wB;AACA,yD;AACA,8B;AACA,iC;AACA,yB;AACA,uC;AACA,kB;AACA,K;AACA,I;AACA,I;AACA,I;AACA,C;;AAEA,uB;AACA,2B;AACA,yB;AACA,kD;AACA,8E;AACA,mF;AACA,0C;AACA,I;AACA,gC;AACA,8C;AACA,G;AACA,G;AACA,C;;;;;AAKA,8D;AACA,8B;;AAEA,kB;AACA,gC;AACA,wE;AACA,G;;AAEA,+B;AACA,wC;AACA,+B;AACA,oF;AACA,Q;AACA,6B;AACA,wB;AACA,kB;AACA,K;AACA,E;AACA,G;;AAEA,e;AACA,W;AACA,mB;AACA,sB;AACA,G;;AAEA,sC;AACA,yB;AACA,yB;;AAEA,kE;AACA,6D;AACA,U;AACA,G;;AAEA,mD;;AAEA,iB;AACA,+B;AACA,yC;AACA,oC;AACA,G;;AAEA,8B;AACA,2F;AACA,S;AACA,6B;;AAEA,U;AACA,+E;AACA,S;AACA,iB;AACA,G;AACA,G;;AAEA,a;AACA,a;AACA,0B;AACA,+F;AACA,4G;AACA,6C;AACA,wD;;AAEA,qB;AACA,+B;AACA,wF;AACA,S;AACA,S;AACA,I;AACA,G;AACA,E;AACA,G;;AAEA,+C;AACA,mE;AACA,gC;AACA,wE;AACA,qD;AACA,8B;AACA,0B;AACA,wC;AACA,I;AACA,I;AACA,I;AACA,C;;AAEA,wB;AACA,yD;AACA,yD;AACA,6B;AACA,8B;AACA,yB;AACA,gC;;AAEA,kB;AACA,yB;;AAEA,6D;AACA,8B;AACA,qC;AACA,K;AACA,I;AACA,e;AACA,G;AACA,G;AACA,C;;AAEA,a;AACA,Y;AACA,Y;AACA,a;AACA,e;AACA,e;AACA,W;AACA,W;AACA,U;AACA,e;AACA,kB;AACA,e;AACA,6C;AACA,G;;AAEA,8B;AACA,yB;AACA,qC;AACA,C;;;;;AAKA,2B;;AAEA,kB;AACA,8B;AACA,+C;AACA,S;AACA,qB;AACA,gD;;AAEA,qC;AACA,mC;AACA,qE;AACA,M;AACA,G;;AAEA,kB;AACA,0E;AACA,sD;;AAEA,2B;AACA,qB;AACA,mD;AACA,4D;AACA,Q;AACA,M;;AAEA,gB;AACA,W;AACA,uC;AACA,mD;AACA,0B;AACA,O;AACA,M;;AAEA,6D;AACA,qC;AACA,2C;AACA,kC;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,c;AACA,G;;AAEA,iC;AACA,+C;AACA,S;AACA,qB;AACA,0E;;AAEA,qC;AACA,mC;AACA,wE;AACA,M;AACA,G;AACA,kB;AACA,sD;;AAEA,2B;AACA,qB;AACA,wE;AACA,mD;AACA,4D;AACA,O;AACA,M;;AAEA,gB;AACA,W;AACA,uC;AACA,+B;AACA,uD;AACA,mD;AACA,O;AACA,M;;AAEA,6D;AACA,kD;AACA,2C;AACA,kC;AACA,M;AACA,K;AACA,I;AACA,G;;AAEA,c;AACA,G;;AAEA,2C;AACA,0B;;AAEA,6D;AACA,wE;AACA,G;;AAEA,qC;AACA,mC;AACA,0F;AACA,M;AACA,G;;AAEA,+B;AACA,6B;AACA,oC;AACA,kB;AACA,W;AACA,2B;AACA,iD;;AAEA,+C;AACA,wD;AACA,wC;AACA,oC;AACA,a;AACA,iC;AACA,M;AACA,K;;AAEA,6B;AACA,8D;AACA,2B;AACA,8B;AACA,2D;AACA,K;;AAEA,kE;AACA,8E;AACA,wE;AACA,8D;AACA,0G;AACA,I;AACA,K;AACA,G;;AAEA,iC;AACA,uC;AACA,S;AACA,mB;AACA,wB;AACA,oH;AACA,gB;AACA,I;AACA,G;;AAEA,e;AACA,E;AACA,G;;;;;AAKA,8C;;;AAGA,uF;AACA,0E;AACA,mG;;AAEA,wB;AACA,2C;AACA,+B;AACA,oC;AACA,wB;AACA,G;AACA,G;;AAEA,kB;AACA,mC;AACA,iE;AACA,G;;AAEA,oC;AACA,0C;AACA,G;AACA,gC;AACA,qC;AACA,G;;AAEA,kD;AACA,8C;AACA,G;AACA,8C;AACA,gD;AACA,uG;AACA,E;AACA,G;;;AAGA,yB;;AAEA,oB;;;;AAIA,sJ;;AAEA,qC;AACA,uD;AACA,0C;AACA,yB;AACA,iD;AACA,wC;AACA,E;;AAEA,qB;AACA,e;AACA,iC;;AAEA,yF;AACA,+B;AACA,+F;;AAEA,kD;AACA,mC;AACA,a;AACA,G;;AAEA,oE;AACA,sB;AACA,gB;AACA,G;;AAEA,4C;AACA,kC;;AAEA,wB;AACA,sE;AACA,uE;AACA,wE;AACA,0B;;AAEA,sB;AACA,Y;AACA,O;AACA,qC;AACA,0C;AACA,E;;;AAGA,4B;AACA,oC;AACA,c;AACA,2C;AACA,c;AACA,E;AACA,M;AACA,uC;AACA,yB;AACA,iD;AACA,gB;AACA,iD;AACA,uB;AACA,uB;AACA,G;AACA,e;AACA,kB;AACA,E;AACA,0F;AACA,yC;AACA,E;AACA,Y;AACA,E;;;AAGA,G;AACA,qB;AACA,c;AACA,c;;AAEA,gB;AACA,uB;AACA,gF;AACA,iD;AACA,8E;AACA,+B;AACA,qB;AACA,oE;;AAEA,c;AACA,uF;AACA,wB;AACA,sC;AACA,gF;AACA,0B;AACA,0C;AACA,2F;AACA,I;AACA,iB;;AAEA,uB;AACA,0B;AACA,0C;AACA,gF;AACA,I;AACA,iB;;AAEA,wF;AACA,6B;;AAEA,kD;AACA,+D;AACA,K;AACA,8B;AACA,c;AACA,0C;AACA,mD;AACA,8C;AACA,wB;AACA,kC;AACA,C;;AAEA,8B;AACA,6D;;AAEA,uE;AACA,mD;;AAEA,sD;AACA,8C;;AAEA,iD;AACA,6B;AACA,4B;AACA,G;;AAEA,e;AACA,S;AACA,yE;;AAEA,oC;AACA,iD;AACA,0C;AACA,2B;AACA,yC;AACA,2C;AACA,2E;;AAEA,uB;AACA,Y;AACA,wE;AACA,K;AACA,I;AACA,G;AACA,G;AACA,C;;AAEA,yD;AACA,sF;;AAEA,oB;AACA,kD;;AAEA,+B;AACA,e;AACA,+B;AACA,+E;AACA,mF;AACA,6G;AACA,qD;AACA,mC;AACA,iB;AACA,mC;AACA,+C;AACA,I;AACA,K;AACA,kB;AACA,E;;AAEA,iF;AACA,C;;AAEA,oC;AACA,sD;AACA,c;AACA,oC;AACA,e;AACA,sD;;AAEA,qB;AACA,mC;AACA,iF;AACA,G;AACA,E;AACA,c;AACA,sC;AACA,E;;AAEA,e;AACA,C;;AAEA,wC;AACA,mF;AACA,uC;AACA,G;AACA,qD;AACA,4C;AACA,wB;AACA,0B;;AAEA,4D;AACA,mC;AACA,oB;AACA,2B;AACA,8D;AACA,G;AACA,E;;AAEA,oD;AACA,Y;AACA,4B;AACA,2D;AACA,8B;AACA,U;AACA,I;AACA,G;AACA,E;;AAEA,gE;AACA,qC;AACA,iC;AACA,S;AACA,8B;AACA,6B;AACA,wE;AACA,yB;AACA,U;AACA,I;AACA,0B;AACA,yB;AACA,I;AACA,G;AACA,0B;AACA,iD;AACA,E;;AAEA,0B;AACA,6C;AACA,yC;AACA,uB;AACA,2C;AACA,sC;AACA,G;AACA,oC;AACA,E;AACA,C;;AAEA,gE;AACA,yD;AACA,G;AACA,uD;AACA,qC;AACA,kB;AACA,8E;AACA,kC;;AAEA,8C;AACA,wB;AACA,gC;AACA,2D;AACA,G;AACA,E;;AAEA,6B;;AAEA,uC;AACA,oB;;AAEA,sC;AACA,mD;AACA,G;;AAEA,qC;AACA,6C;AACA,mD;AACA,G;;AAEA,iB;AACA,8B;;AAEA,kB;;AAEA,6D;AACA,2B;;AAEA,mB;;AAEA,4E;AACA,mD;;AAEA,8B;AACA,8E;;AAEA,iC;AACA,kB;AACA,kC;;AAEA,iC;AACA,+B;AACA,mC;;AAEA,oD;AACA,oD;AACA,sC;AACA,oB;AACA,0C;AACA,8B;AACA,oC;;AAEA,sD;AACA,oD;AACA,4B;AACA,uC;AACA,S;AACA,c;AACA,Q;AACA,O;AACA,M;AACA,K;;AAEA,8C;AACA,0B;;AAEA,kE;AACA,mC;AACA,kC;AACA,a;AACA,W;AACA,mC;AACA,qB;AACA,0G;AACA,O;AACA,M;AACA,K;AACA,I;AACA,G;AACA,E;;AAEA,6C;AACA,C;;AAEA,e;;AAEA,oD;AACA,W;;AAEA,+C;AACA,kB;AACA,U;;AAEA,gB;AACA,oB;AACA,c;AACA,oD;AACA,e;AACA,oB;AACA,c;AACA,kE;AACA,I;AACA,a;AACA,a;AACA,iB;AACA,iB;AACA,iB;AACA,c;AACA,gB;AACA,qB;AACA,c;AACA,I;;AAEA,Y;AACA,iB;AACA,sB;AACA,qB;AACA,oC;AACA,4C;AACA,I;;AAEA,a;AACA,c;AACA,gB;AACA,e;AACA,I;;AAEA,mB;AACA,sB;AACA,wB;AACA,uB;AACA,I;;AAEA,oB;AACA,qF;AACA,e;;AAEA,8B;AACA,oB;;AAEA,6C;AACA,qB;;AAEA,wC;AACA,iC;;AAEA,uB;AACA,8B;AACA,I;;AAEA,iD;AACA,gD;AACA,8C;AACA,mC;AACA,gB;AACA,a;AACA,gB;AACA,G;AACA,G;;AAEA,sD;AACA,+C;AACA,mD;AACA,0C;AACA,mB;;AAEA,gC;AACA,sE;;AAEA,4B;AACA,6C;AACA,G;;AAEA,0D;AACA,0D;;AAEA,e;AACA,iC;;AAEA,oD;AACA,kC;AACA,iB;AACA,mB;AACA,G;;AAEA,kC;AACA,0B;;AAEA,oC;AACA,S;AACA,mB;AACA,K;AACA,kC;AACA,Y;AACA,gC;AACA,yB;AACA,oB;AACA,gB;;AAEA,mD;AACA,e;;AAEA,a;AACA,sB;AACA,mB;AACA,qC;AACA,uC;AACA,uB;AACA,oC;AACA,2F;AACA,6F;AACA,+B;AACA,iB;AACA,e;AACA,gC;AACA,sD;AACA,gC;AACA,mC;AACA,yC;AACA,uB;AACA,4B;AACA,qB;AACA,a;AACA,2B;AACA,yB;AACA,c;AACA,Y;AACA,kB;;AAEA,yC;AACA,wC;AACA,e;AACA,yB;AACA,+B;AACA,4B;AACA,mE;AACA,+D;AACA,Q;AACA,O;AACA,mD;AACA,M;AACA,yC;AACA,M;;AAEA,iB;AACA,uC;AACA,uD;AACA,M;;AAEA,wB;AACA,+C;AACA,oC;AACA,oB;AACA,iF;AACA,qC;AACA,M;AACA,iB;AACA,M;;AAEA,6C;AACA,wC;AACA,oB;AACA,wB;AACA,M;AACA,iB;AACA,M;;AAEA,iC;AACA,iC;AACA,c;AACA,iB;AACA,wB;AACA,4B;AACA,qE;AACA,iE;AACA,Q;AACA,c;AACA,2C;AACA,2C;AACA,O;AACA,M;AACA,iB;AACA,M;;AAEA,yB;AACA,mC;AACA,4C;AACA,uB;AACA,mC;AACA,M;AACA,0B;AACA,iB;AACA,K;AACA,K;;AAEA,qB;AACA,4D;AACA,6B;AACA,2B;;AAEA,wD;AACA,4E;AACA,qF;AACA,+C;AACA,wH;;AAEA,qD;AACA,gE;;AAEA,2B;AACA,4F;;AAEA,kF;AACA,gC;AACA,4C;AACA,+B;AACA,6E;AACA,oE;AACA,iF;AACA,K;AACA,G;;AAEA,yC;AACA,gE;AACA,kD;AACA,G;;AAEA,qB;AACA,iE;;AAEA,0D;AACA,sB;AACA,gB;AACA,G;;AAEA,oD;AACA,qF;AACA,yC;;AAEA,oC;AACA,+C;AACA,qC;AACA,G;;AAEA,uB;AACA,gC;;AAEA,qC;AACA,4C;;AAEA,iE;AACA,yC;AACA,mB;;AAEA,uD;AACA,wB;;AAEA,8C;AACA,kB;AACA,6E;AACA,oE;AACA,kB;AACA,I;;AAEA,qC;AACA,6B;AACA,kC;;AAEA,0D;AACA,gD;;AAEA,oC;AACA,yE;AACA,I;AACA,G;;AAEA,kF;AACA,uB;AACA,2C;AACA,mF;AACA,I;AACA,mC;AACA,uE;AACA,I;AACA,G;;AAEA,kD;AACA,mF;AACA,2D;AACA,G;;AAEA,qE;AACA,yB;AACA,Y;AACA,oD;AACA,oG;AACA,oB;AACA,I;;AAEA,6B;AACA,0B;AACA,+C;AACA,G;;AAEA,mD;AACA,sG;AACA,0C;AACA,wB;AACA,G;;AAEA,yC;AACA,qB;;AAEA,mC;AACA,sD;AACA,wB;AACA,G;;AAEA,kB;AACA,6E;;AAEA,mC;AACA,qB;AACA,8B;AACA,U;AACA,wB;;AAEA,uB;AACA,uB;AACA,2D;AACA,I;AACA,a;AACA,oC;AACA,0C;AACA,4B;AACA,mB;AACA,I;;AAEA,Q;AACA,c;AACA,2C;AACA,kB;AACA,+C;AACA,sB;AACA,mB;AACA,+B;AACA,Y;AACA,a;AACA,K;AACA,I;AACA,G;;AAEA,yC;AACA,iE;AACA,qD;AACA,kC;;AAEA,iB;AACA,uB;AACA,W;AACA,I;;AAEA,yB;AACA,a;;AAEA,gC;AACA,wB;AACA,iC;AACA,I;;AAEA,wD;AACA,wD;AACA,yB;;AAEA,4B;AACA,yC;;AAEA,oB;AACA,yC;;AAEA,6B;AACA,+D;;AAEA,uB;AACA,qB;AACA,0D;AACA,I;;AAEA,yE;AACA,2D;;AAEA,yC;AACA,qB;;AAEA,oF;AACA,yB;AACA,yD;AACA,sB;AACA,iD;AACA,M;AACA,gD;AACA,sB;AACA,yC;AACA,M;AACA,K;;AAEA,oB;AACA,gD;AACA,8B;;AAEA,sB;AACA,kC;AACA,gC;;AAEA,wC;AACA,Y;AACA,iC;AACA,6B;AACA,4B;AACA,wB;AACA,K;AACA,W;AACA,uC;AACA,0D;AACA,uB;AACA,kC;AACA,0B;AACA,wB;AACA,iB;AACA,M;AACA,K;AACA,I;;AAEA,sC;AACA,yB;AACA,8D;;AAEA,mB;AACA,qB;AACA,4E;AACA,W;AACA,yE;AACA,I;;AAEA,gC;AACA,kC;AACA,0B;;AAEA,uB;AACA,wE;AACA,iD;AACA,I;;AAEA,c;AACA,uE;;AAEA,uB;AACA,+D;AACA,qC;AACA,iC;AACA,sC;AACA,K;AACA,I;AACA,G;;AAEA,e;AACA,G;;AAEA,2C;AACA,mD;AACA,G;;AAEA,uC;AACA,0D;AACA,E;AACA,G;;AAEA,uD;AACA,2D;AACA,iD;AACA,oC;AACA,2B;AACA,mB;AACA,oB;AACA,G;;AAEA,sB;AACA,Y;AACA,gB;AACA,kB;AACA,c;AACA,oB;AACA,K;AACA,G;AACA,G;;;AAGA,mC;AACA,qB;AACA,W;AACA,c;AACA,qB;AACA,e;AACA,gB;AACA,gB;AACA,I;AACA,E;;;AAGA,kB;AACA,4B;AACA,oC;AACA,iC;AACA,+C;AACA,M;AACA,G;;AAEA,kB;AACA,4C;AACA,sE;;AAEA,8B;AACA,iC;AACA,I;;AAEA,wB;AACA,oB;;AAEA,iE;AACA,4B;AACA,K;;AAEA,gB;AACA,qB;AACA,G;;AAEA,c;AACA,G;;AAEA,8B;AACA,oC;AACA,iC;AACA,iD;AACA,M;AACA,G;;AAEA,+B;AACA,6B;AACA,+B;;AAEA,2B;AACA,6B;;AAEA,W;AACA,wB;AACA,I;AACA,K;AACA,G;;AAEA,yB;AACA,6C;;AAEA,gC;AACA,oE;AACA,K;AACA,G;;AAEA,qB;AACA,wC;AACA,4C;AACA,kD;AACA,I;AACA,W;AACA,E;AACA,G;;;AAGA,+C;AACA,2B;AACA,gF;AACA,0D;AACA,sC;AACA,qF;AACA,E;;AAEA,gD;AACA,4C;AACA,E;;;;;AAKA,iB;AACA,oB;AACA,kB;AACA,2D;AACA,qD;;AAEA,uD;AACA,U;;AAEA,+B;AACA,0B;AACA,sC;AACA,kD;AACA,yC;AACA,qB;;AAEA,W;AACA,sE;AACA,gG;AACA,I;AACA,K;;AAEA,gE;AACA,2B;AACA,uB;AACA,2E;AACA,G;;AAEA,S;AACA,2B;AACA,qB;AACA,E;AACA,C;;AAEA,kD;AACA,iC;AACA,2C;AACA,Y;AACA,S;AACA,gC;AACA,4D;AACA,iF;AACA,iF;AACA,I;;AAEA,yD;AACA,mC;AACA,uE;AACA,E;;AAEA,2E;AACA,2E;AACA,gC;AACA,8B;AACA,gC;AACA,K;;AAEA,S;AACA,iE;AACA,kD;AACA,uB;AACA,wD;AACA,G;AACA,E;;AAEA,sC;AACA,0C;AACA,E;;AAEA,kB;AACA,wB;AACA,+C;AACA,G;AACA,6B;AACA,8B;AACA,oE;AACA,kD;AACA,yD;AACA,I;AACA,sB;AACA,wB;AACA,2D;AACA,2D;AACA,0E;AACA,qD;AACA,I;AACA,4B;AACA,kC;;AAEA,uB;AACA,U;AACA,2B;AACA,uC;AACA,sE;AACA,S;AACA,8D;AACA,W;AACA,E;AACA,G;;;AAGA,4B;AACA,sE;AACA,8D;AACA,iB;AACA,a;;AAEA,oE;AACA,yB;;AAEA,oB;AACA,6D;AACA,2E;AACA,oE;AACA,0D;AACA,0D;AACA,+D;;AAEA,4C;AACA,I;AACA,kE;AACA,mB;;AAEA,c;AACA,mB;AACA,0C;;AAEA,iB;AACA,2D;AACA,6D;AACA,2B;AACA,6C;AACA,mC;AACA,0C;AACA,G;AACA,I;AACA,C;;AAEA,+B;AACA,uE;AACA,6C;;AAEA,qD;AACA,qB;;AAEA,2C;AACA,kE;AACA,+C;;AAEA,gB;;AAEA,W;AACA,yC;AACA,W;AACA,0B;AACA,mB;;AAEA,uB;AACA,8F;;AAEA,uC;AACA,+B;AACA,sC;AACA,yC;AACA,O;AACA,M;;AAEA,oC;AACA,sD;AACA,+C;AACA,M;;AAEA,+B;AACA,2E;AACA,mE;AACA,6E;AACA,0E;AACA,kE;AACA,qD;AACA,M;;AAEA,mB;AACA,2B;AACA,sB;AACA,2E;AACA,wC;AACA,Q;AACA,0E;AACA,0C;AACA,yC;AACA,oD;AACA,O;AACA,M;;AAEA,2B;AACA,qD;AACA,qD;AACA,gE;;AAEA,gB;AACA,wC;AACA,wC;;AAEA,oD;AACA,8D;AACA,kB;AACA,iC;AACA,4B;AACA,4C;;AAEA,kC;AACA,uB;AACA,qC;AACA,qB;AACA,S;AACA,e;AACA,uB;AACA,4B;;AAEA,yB;AACA,iE;AACA,mB;AACA,qD;AACA,2C;AACA,S;;AAEA,qD;AACA,sD;AACA,a;AACA,qC;AACA,sB;AACA,+D;AACA,yB;AACA,S;;AAEA,mD;;AAEA,qE;AACA,uE;AACA,gD;AACA,mE;AACA,6C;AACA,mE;AACA,uC;AACA,sB;AACA,S;AACA,Q;AACA,O;;AAEA,gC;AACA,wB;AACA,8E;AACA,O;AACA,O;;AAEA,4B;AACA,mD;AACA,iB;AACA,yC;AACA,kD;AACA,wD;AACA,6B;AACA,a;AACA,gD;AACA,6D;AACA,M;AACA,M;;AAEA,uB;AACA,sB;AACA,kC;AACA,M;AACA,K;AACA,K;AACA,G;AACA,I;AACA,C;;AAEA,2B;AACA,8B;AACA,M;AACA,qC;AACA,gB;AACA,C;;AAEA,4B;AACA,M;AACA,yD;AACA,gB;AACA,C;;;;;AAKA,0B;AACA,kB;AACA,W;AACA,qG;AACA,G;AACA,Y;AACA,+B;AACA,G;AACA,c;AACA,mC;AACA,6B;AACA,e;AACA,G;AACA,E;AACA,G;;AAEA,yC;AACA,+C;AACA,+B;AACA,kB;AACA,E;AACA,uB;AACA,iB;AACA,mB;AACA,E;AACA,G;;AAEA,iC;AACA,6C;;AAEA,wD;AACA,uB;;AAEA,a;AACA,yE;;AAEA,U;;AAEA,kC;;AAEA,8C;;AAEA,wB;;AAEA,4B;AACA,sC;AACA,K;;AAEA,uB;;AAEA,uC;AACA,wE;;AAEA,0F;;AAEA,iC;AACA,uD;;AAEA,0B;AACA,gC;AACA,+C;AACA,O;;AAEA,+B;AACA,oB;;AAEA,8B;AACA,uB;AACA,kC;AACA,O;AACA,M;AACA,M;;AAEA,6E;AACA,sE;AACA,iD;AACA,K;;AAEA,sB;AACA,mB;AACA,sC;AACA,K;AACA,I;AACA,I;AACA,E;AACA,G;;;;;AAKA,sB;AACA,8B;;AAEA,yB;AACA,kB;AACA,mB;AACA,4B;AACA,8E;AACA,0B;AACA,kB;AACA,E;AACA,G;;AAEA,qE;AACA,4E;;AAEA,kD;AACA,0D;AACA,U;AACA,yI;AACA,I;;AAEA,8E;AACA,kD;;AAEA,wE;AACA,yE;AACA,sB;AACA,mB;;AAEA,0C;AACA,mB;AACA,wE;AACA,mC;AACA,gF;AACA,G;;AAEA,+D;AACA,4C;AACA,8B;AACA,qD;AACA,I;AACA,iC;AACA,I;;AAEA,wB;AACA,4B;;AAEA,qB;AACA,uC;AACA,uC;AACA,iC;AACA,I;;AAEA,+C;AACA,2B;AACA,+B;AACA,wC;;AAEA,uB;AACA,6B;AACA,sE;AACA,qD;;AAEA,4C;AACA,sC;AACA,I;;AAEA,sD;AACA,iE;AACA,0C;AACA,I;;AAEA,+C;AACA,K;;AAEA,uB;AACA,kB;AACA,E;AACA,G;;;;;AAKA,uB;AACA,uG;AACA,kF;AACA,2D;AACA,2C;AACA,c;AACA,E;AACA,sC;AACA,wB;AACA,kB;AACA,E;AACA,+B;;AAEA,sC;AACA,+B;;AAEA,c;AACA,gB;AACA,gD;AACA,E;;AAEA,6D;;AAEA,mC;AACA,6B;AACA,E;;AAEA,8C;AACA,E;;;AAGA,qC;AACA,2B;;AAEA,G;AACA,yB;AACA,G;AACA,oD;AACA,0C;AACA,wC;AACA,E;;AAEA,8B;AACA,c;AACA,yB;;AAEA,kB;AACA,yD;AACA,4B;AACA,E;;AAEA,sB;AACA,qC;;AAEA,qC;AACA,oB;AACA,qB;;AAEA,mC;AACA,qD;AACA,gB;AACA,E;;AAEA,mD;AACA,yB;AACA,e;AACA,Y;;AAEA,qE;AACA,c;AACA,oB;AACA,e;AACA,oC;;AAEA,gD;AACA,wB;;AAEA,wB;;AAEA,4E;AACA,6D;AACA,iF;;AAEA,oC;AACA,mB;;AAEA,sD;AACA,4E;AACA,K;AACA,E;;AAEA,a;AACA,E;;;;;AAKA,8D;AACA,uH;AACA,qC;AACA,6B;AACA,G;AACA,G;;;;;AAKA,iD;AACA,mD;AACA,0B;AACA,W;AACA,E;;;;;;AAMA,8C;;AAEA,G;AACA,gC;AACA,G;AACA,4B;AACA,iC;AACA,Q;AACA,uB;AACA,0C;AACA,S;AACA,C;;AAEA,iB;AACA,0C;AACA,wF;AACA,6C;AACA,4B;AACA,c;;AAEA,qE;AACA,gC;AACA,oC;AACA,G;;AAEA,+B;AACA,wC;AACA,0C;AACA,4E;AACA,2D;;AAEA,iH;AACA,4B;AACA,oC;AACA,4B;AACA,8B;AACA,U;AACA,yC;AACA,2C;AACA,G;;AAEA,uC;AACA,gD;AACA,G;;AAEA,8B;AACA,wD;AACA,G;AACA,+B;AACA,4D;AACA,G;;AAEA,6B;AACA,qC;AACA,U;AACA,wB;AACA,G;AACA,E;AACA,E;;AAEA,kB;AACA,8B;AACA,2B;AACA,iC;AACA,U;AACA,6B;AACA,iD;AACA,O;AACA,G;;AAEA,mB;AACA,6B;AACA,oB;AACA,oC;;AAEA,e;AACA,U;AACA,G;;AAEA,gC;;AAEA,+C;AACA,4C;AACA,c;AACA,G;;AAEA,0D;AACA,0C;AACA,6D;AACA,sC;AACA,G;AACA,yB;AACA,U;AACA,2F;AACA,2F;AACA,I;AACA,G;;AAEA,uB;AACA,qB;AACA,U;AACA,G;;AAEA,2B;AACA,sC;AACA,oB;;AAEA,iH;AACA,qD;AACA,uF;AACA,yC;AACA,U;AACA,6B;AACA,sC;;AAEA,yB;AACA,0B;AACA,yD;AACA,yC;AACA,I;;AAEA,8B;AACA,gF;AACA,iF;AACA,G;;AAEA,gD;AACA,yE;AACA,mE;AACA,U;AACA,gF;AACA,gF;AACA,I;AACA,G;;AAEA,2B;AACA,8B;AACA,mD;;AAEA,kI;AACA,6C;AACA,I;AACA,kC;AACA,K;AACA,E;AACA,G;;AAEA,0C;AACA,gG;AACA,4B;;AAEA,wC;AACA,sD;AACA,+B;;AAEA,6B;AACA,8C;AACA,6C;AACA,oB;AACA,I;;AAEA,e;AACA,iB;AACA,6C;AACA,0C;AACA,M;;AAEA,W;AACA,yB;AACA,I;AACA,2C;AACA,G;AACA,G;;AAEA,qD;AACA,4D;AACA,4E;AACA,yF;AACA,qD;AACA,+D;AACA,8B;AACA,oB;AACA,oC;AACA,uD;AACA,uC;AACA,+C;AACA,c;AACA,I;AACA,G;AACA,G;AACA,G;;;AAGA,oF;AACA,2E;AACA,kH;AACA,+C;AACA,qD;AACA,uF;AACA,wF;;AAEA,uD;AACA,Y;;AAEA,oC;AACA,qF;AACA,iF;AACA,iD;AACA,6D;AACA,K;;AAEA,mC;AACA,gC;AACA,gC;;AAEA,0G;AACA,gH;AACA,qB;AACA,2D;AACA,2D;AACA,4B;AACA,O;AACA,K;;AAEA,gC;AACA,iF;AACA,sC;;AAEA,0C;AACA,8C;AACA,8D;AACA,I;AACA,I;AACA,G;;;AAGA,8D;AACA,6B;AACA,oB;AACA,E;;AAEA,sC;;;;;AAKA,8E;AACA,4E;AACA,2E;AACA,yE;AACA,2E;AACA,8E;AACA,mE;;AAEA,0E;AACA,4E;AACA,6E;AACA,kF;;AAEA,mD;AACA,mC;AACA,gB;AACA,I;AACA,C;;;;;AAKA,G;AACA,wC;AACA,yB;;AAEA,uC;AACA,e;;AAEA,sC;AACA,6B;AACA,gB;AACA,E;;AAEA,0C;AACA,0B;AACA,E;;AAEA,e;AACA,E;;AAEA,2C;AACA,oE;AACA,8C;AACA,yC;AACA,mC;AACA,C;;;;;AAKA,c;;AAEA,I;;;;;;;;;;;;;;;;;;;ACzmUA,gF;AACA,kE;AACA,+E;AACA,wC","file":"/packages/jquery.js","sourcesContent":["/*!\n * jQuery JavaScript Library v1.11.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-17T15:27Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.2\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \"
a\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
\", \"
\" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"