# HG changeset patch # User Harris Baptiste # Date 1471968068 -7200 # Node ID 797460904f776d949340aec4e9937bb8a542b91f # Parent c35816b65834f910a4b9c027296c6891ecc29ab0 indexing using tag labels diff -r c35816b65834 -r 797460904f77 .hgignore --- a/.hgignore Mon Aug 22 12:46:43 2016 +0200 +++ b/.hgignore Tue Aug 23 18:01:08 2016 +0200 @@ -11,7 +11,8 @@ \.orig$ ^src_js/iconolab-bundle/node_modules/ -^src_js/iconolab/static/iconolab/js/iconolab-bundle/dist/ +^src_js/iconolab-bundle/dist/ + \.log$ ^web/* ^\.pydevproject$ diff -r c35816b65834 -r 797460904f77 src/iconolab/models.py --- a/src/iconolab/models.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/models.py Tue Aug 23 18:01:08 2016 +0200 @@ -156,11 +156,13 @@ return self.item.metadatas.measurements @property - def tags(self): + def tag_labels(self): tag_list = [] for annotation in self.annotations.all(): - revision_tags = annotation.current_revision.tags.all() - tag_list = [tag.label for tag in revision_tags] + revision_tags = json.loads(annotation.current_revision.get_tags_json()) + tag_list += [tag_infos['tag_label'] for tag_infos in revision_tags if tag_infos.get('tag_label') is not None] #deal with + print("tag_list") + print(tag_list) return tag_list class AnnotationManager(models.Manager): @@ -286,8 +288,11 @@ return self.image.collection @property - def tags(self): - return [tag.label for tag in self.current_revision.tags.all()] + def tag_labels(self): + current_revision_tags = json.loads(self.current_revision.get_tags_json()) + print("tagss") + print(current_revision_tags) + return [tag_infos['tag_label'] for tag_infos in current_revision_tags if tag_infos.get('tag_label') is not None ] # Call to create a new revision, possibly from a merge diff -r c35816b65834 -r 797460904f77 src/iconolab/search_indexes/forms.py --- a/src/iconolab/search_indexes/forms.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/search_indexes/forms.py Tue Aug 23 18:01:08 2016 +0200 @@ -26,7 +26,6 @@ # load all selected_type = self.cleaned_data.get("model_type") qs = self.get_model_type_queryset(self.searchqueryset, selected_type).load_all() - print(qs.count()) return qs def get_model_type_queryset(self, qs, model_type): diff -r c35816b65834 -r 797460904f77 src/iconolab/search_indexes/indexes.py --- a/src/iconolab/search_indexes/indexes.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/search_indexes/indexes.py Tue Aug 23 18:01:08 2016 +0200 @@ -17,7 +17,7 @@ discovery_context = indexes.CharField(model_attr="item__metadatas__discovery_context") conservation_location = indexes.CharField(model_attr="item__metadatas__conservation_location") - tags = indexes.MultiValueField(model_attr="tags") + tags = indexes.MultiValueField(model_attr="tag_labels") def get_model(self): return Image @@ -34,7 +34,7 @@ title = indexes.CharField(model_attr="current_revision__title") description = indexes.CharField(model_attr="current_revision__description") collection = indexes.CharField(model_attr="collection") - tags = indexes.MultiValueField(model_attr="tags") + tags = indexes.MultiValueField(model_attr="tag_labels") ## tags def get_model(self): diff -r c35816b65834 -r 797460904f77 src/iconolab/search_indexes/query.py --- a/src/iconolab/search_indexes/query.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/search_indexes/query.py Tue Aug 23 18:01:08 2016 +0200 @@ -9,9 +9,6 @@ def in_bulk(self, ids): results = {} int_ids = [ int(id) for id in ids] - print("in_bulk") - print(int_ids) - # Ne garder que les images annotations = Annotation.objects.filter(pk__in = int_ids) for annotation in annotations: diff -r c35816b65834 -r 797460904f77 src/iconolab/search_indexes/views.py --- a/src/iconolab/search_indexes/views.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/search_indexes/views.py Tue Aug 23 18:01:08 2016 +0200 @@ -1,14 +1,11 @@ from haystack.generic_views import SearchView from haystack.query import RelatedSearchQuerySet from iconolab.search_indexes.forms import IconolabSearchForm -from iconolab.search_indexes.query import IconolabRelatedQuerySet from django.shortcuts import HttpResponse, redirect from django.core.urlresolvers import reverse from django.views.generic import RedirectView from iconolab.models import Collection -from pprint import pprint - #override Search and Related QuerySet here class IconolabSearchView(SearchView): form_class = IconolabSearchForm @@ -90,11 +87,9 @@ except KeyError: template = IconolabSearchView.template_name finally: - print(template) return [template] def get_context_data(self, *args, **kwargs): context = super(IconolabSearchView, self).get_context_data(*args, **kwargs) context['collection_name'] = self.kwargs.get('collection_name', '') - print(context) return context \ No newline at end of file diff -r c35816b65834 -r 797460904f77 src/iconolab/settings/__init__.py --- a/src/iconolab/settings/__init__.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/settings/__init__.py Tue Aug 23 18:01:08 2016 +0200 @@ -150,7 +150,7 @@ 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.i18n', - 'iconolab.utils.context_processors.notifications', + 'iconolab.utils.context_processors.env', ], }, }, diff -r c35816b65834 -r 797460904f77 src/iconolab/settings/dev.py.tmpl --- a/src/iconolab/settings/dev.py.tmpl Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/settings/dev.py.tmpl Tue Aug 23 18:01:08 2016 +0200 @@ -17,6 +17,19 @@ STATIC_ROOT = os.path.join(BASE_DIR, '../../web/static/site') MEDIA_ROOT = os.path.join(BASE_DIR, '../../web/media') + +#dev_mode useful for src_js +SRC_JS_PATH = os.path.join(BASE_DIR, '..', '..', 'src_js') +DEV_MODE = True + +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, 'static'), + os.path.join(BASE_DIR, 'media'), + SRC_JS_PATH, +] + + + STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] diff -r c35816b65834 -r 797460904f77 src/iconolab/static/iconolab/js/build.js --- a/src/iconolab/static/iconolab/js/build.js Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/static/iconolab/js/build.js Tue Aug 23 18:01:08 2016 +0200 @@ -1,5 +1,5 @@ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="/dist/",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}n(38),n(39),n(37);var i=n(28),o=(r(i),n(2)),a=r(o),s=n(33),u=r(s),c=n(6),l=r(c),f=n(41),h=r(f),d={Cutout:u["default"],VueComponents:{Typeahead:a["default"],MergeTool:h["default"],Zoomview:l["default"]}};window.iconolab||(window.iconolab=d)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.eventEmitter=e.generateId=void 0;var i=n(27),o=r(i),a=(0,o["default"])({}),s=function(){var t=0,e="item_";return function(n){return n="string"==typeof n?n:e,t+=1,n+t}}();e.generateId=s,e.eventEmitter=a},function(t,e,n){var r,i;n(47),r=n(10);var o=n(43);i=r||{},i.__esModule&&(i=i["default"]),"function"==typeof i&&(i=i.options),i.render=o.render,i.staticRenderFns=o.staticRenderFns,i._scopeId="data-v-1",t.exports=r||i},function(t,e,n){var r,i,r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};(function(){t.exports=0;!function(n){var o,a,s="0.4.2",u="hasOwnProperty",c=/[\.\/]/,l=/\s*,\s*/,f="*",h=function(t,e){return t-e},d={n:{}},p=function(){for(var t=0,e=this.length;t1)for(var r=0,i=n.length;r=1&&(delete n[i],o.s=1,t--,function(t){setTimeout(function(){e("mina.finish."+t.id,t)})}(o)),o.update()}t&&r(y)},m=function b(t,e,i,o,a,u,m){var y={id:s(),start:t,end:e,b:i,s:0,dur:o-i,spd:1,get:a,set:u,easing:m||b.linear,status:c,speed:l,duration:f,stop:h,pause:d,resume:p,update:v};n[y.id]=y;var x,w=0;for(x in n)if(n.hasOwnProperty(x)&&(w++,2==w))break;return 1==w&&r(g),y};return m.time=u,m.getById=function(t){return n[t]||null},m.linear=function(t){return t},m.easeout=function(t){return Math.pow(t,1.7)},m.easein=function(t){return Math.pow(t,.48)},m.easeinout=function(t){if(1==t)return 1;if(0==t)return 0;var e=.48-t/1.04,n=Math.sqrt(.1734+e*e),r=n-e,i=Math.pow(Math.abs(r),1/3)*(r<0?-1:1),o=-n-e,a=Math.pow(Math.abs(o),1/3)*(o<0?-1:1),s=i+a+.5;return 3*(1-s)*s*s+s*s*s},m.backin=function(t){if(1==t)return 1;var e=1.70158;return t*t*((e+1)*t-e)},m.backout=function(t){if(0==t)return 0;t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},m.elastic=function(t){return t==!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1},m.bounce=function(t){var e,n=7.5625,r=2.75;return t<1/r?e=n*t*t:t<2/r?(t-=1.5/r,e=n*t*t+.75):t<2.5/r?(t-=2.25/r,e=n*t*t+.9375):(t-=2.625/r,e=n*t*t+.984375),e},t.mina=m,m}("undefined"==typeof e?function(){}:e),r=function(t){function n(t,e){if(t){if(t.nodeType)return C(t);if(i(t,"array")&&n.set)return n.set.apply(n,t);if(t instanceof b)return t;if(null==e)return t=T.doc.querySelector(String(t)),C(t)}return t=null==t?"100%":t,e=null==e?"100%":e,new _(t,e)}function r(t,e){if(e){if("#text"==t&&(t=T.doc.createTextNode(e.text||e["#text"]||"")),"#comment"==t&&(t=T.doc.createComment(e.text||e["#text"]||"")),"string"==typeof t&&(t=r(t)),"string"==typeof e)return 1==t.nodeType?"xlink:"==e.substring(0,6)?t.getAttributeNS(W,e.substring(6)):"xml:"==e.substring(0,4)?t.getAttributeNS(X,e.substring(4)):t.getAttribute(e):"text"==e?t.nodeValue:null;if(1==t.nodeType){for(var n in e)if(e[A](n)){var i=S(e[n]);i?"xlink:"==n.substring(0,6)?t.setAttributeNS(W,n.substring(6),i):"xml:"==n.substring(0,4)?t.setAttributeNS(X,n.substring(4),i):t.setAttribute(n,i):t.removeAttribute(n)}}else"text"in e&&(t.nodeValue=e.text)}else t=T.doc.createElementNS(X,t);return t}function i(t,e){return e=S.prototype.toLowerCase.call(e),"finite"==e?isFinite(t):!("array"!=e||!(t instanceof Array||Array.isArray&&Array.isArray(t)))||("null"==e&&null===t||e==("undefined"==typeof t?"undefined":a(t))&&null!==t||"object"==e&&t===Object(t)||F.call(t).slice(8,-1).toLowerCase()==e)}function o(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var n in t)t[A](n)&&(e[n]=o(t[n]));return e}function s(t,e){for(var n=0,r=t.length;n=1e3&&delete a[u.shift()],u.push(o),a[o]=t.apply(e,i),n?n(a[o]):a[o])}return r}function c(t,e,n,r,i,o){if(null==i){var a=t-n,s=e-r;return a||s?(180+180*j.atan2(-s,-a)/M+360)%360:0}return c(t,e,i,o)-c(n,r,i,o)}function l(t){return t%360*M/180}function f(t){return 180*t/M%360}function h(t){var e=[];return t=t.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(t,n,r){return r=r.split(/\s*,\s*|\s+/),"rotate"==n&&1==r.length&&r.push(0,0),"scale"==n&&(r.length>2?r=r.slice(0,2):2==r.length&&r.push(0,0),1==r.length&&r.push(r[0],0,0)),"skewX"==n?e.push(["m",1,0,j.tan(l(r[0])),1,0,0]):"skewY"==n?e.push(["m",1,j.tan(l(r[0])),0,1,0,0]):e.push([n.charAt(0)].concat(r)),t}),e}function d(t,e){var r=et(t),i=new n.Matrix;if(r)for(var o=0,a=r.length;o.5;){var d,p,v,g,m,y;(v=o-l)>=0&&(m=r(d=u.getPointAtLength(v)))t-n)return e-o+t}return e},n.getRGB=u(function(t){if(!t||(t=S(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:Q};if(!(R[A](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=Z(t)),!t)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};var e,r,o,a,s,u,c=t.match(B);return c?(c[2]&&(o=E(c[2].substring(5),16),r=E(c[2].substring(3,5),16),e=E(c[2].substring(1,3),16)),c[3]&&(o=E((s=c[3].charAt(3))+s,16),r=E((s=c[3].charAt(2))+s,16),e=E((s=c[3].charAt(1))+s,16)),c[4]&&(u=c[4].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e*=2.55),r=$(u[1]),"%"==u[1].slice(-1)&&(r*=2.55),o=$(u[2]),"%"==u[2].slice(-1)&&(o*=2.55),"rgba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100)),c[5]?(u=c[5].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsb2rgb(e,r,o,a)):c[6]?(u=c[6].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsla"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsl2rgb(e,r,o,a)):(e=N(j.round(e),255),r=N(j.round(r),255),o=N(j.round(o),255),a=N(O(a,0),1),c={r:e,g:r,b:o,toString:Q},c.hex="#"+(16777216|o|r<<8|e<<16).toString(16).slice(1),c.opacity=i(a,"finite")?a:1,c)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q}},n),n.hsb=u(function(t,e,r){return n.hsb2rgb(t,e,r).hex}),n.hsl=u(function(t,e,r){return n.hsl2rgb(t,e,r).hex}),n.rgb=u(function(t,e,n,r){if(i(r,"finite")){var o=j.round;return"rgba("+[o(t),o(e),o(n),+r.toFixed(2)]+")"}return"#"+(16777216|n|e<<8|t<<16).toString(16).slice(1)});var Z=function(t){var e=T.doc.getElementsByTagName("head")[0]||T.doc.getElementsByTagName("svg")[0],n="rgb(255, 0, 0)";return(Z=u(function(t){if("red"==t.toLowerCase())return n;e.style.color=n,e.style.color=t;var r=T.doc.defaultView.getComputedStyle(e,P).getPropertyValue("color");return r==n?null:r}))(t)},J=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Q=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},K=function(t,e,r){if(null==e&&i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(r=t.b,e=t.g,t=t.r),null==e&&i(t,string)){var o=n.getRGB(t);t=o.r,e=o.g,r=o.b}return(t>1||e>1||r>1)&&(t/=255,e/=255,r/=255),[t,e,r]},tt=function(t,e,r,o){t=j.round(255*t),e=j.round(255*e),r=j.round(255*r);var a={r:t,g:e,b:r,opacity:i(o,"finite")?o:1,hex:n.rgb(t,e,r),toString:Q};return i(o,"finite")&&(a.opacity=o),a};n.color=function(t){var e;return i(t,"object")&&"h"in t&&"s"in t&&"b"in t?(e=n.hsb2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):i(t,"object")&&"h"in t&&"s"in t&&"l"in t?(e=n.hsl2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):(i(t,"string")&&(t=n.getRGB(t)),i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&!("error"in t)?(e=n.rgb2hsl(t),t.h=e.h,t.s=e.s,t.l=e.l,e=n.rgb2hsb(t),t.v=e.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1,t.error=1)),t.toString=Q,t},n.hsb2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(n=t.b,e=t.s,r=t.o,t=t.h),t*=360;var o,a,s,u,c;return t=t%360/60,c=n*e,u=c*(1-D(t%2-1)),o=a=s=n-c,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.hsl2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(n=t.l,e=t.s,t=t.h),(t>1||e>1||n>1)&&(t/=360,e/=100,n/=100),t*=360;var o,a,s,u,c;return t=t%360/60,c=2*e*(n<.5?n:1-n),u=c*(1-D(t%2-1)),o=a=s=n-c/2,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.rgb2hsb=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a;return o=O(t,e,n),a=o-N(t,e,n),r=0==a?null:o==t?(e-n)/a:o==e?(n-t)/a+2:(t-e)/a+4,r=(r+360)%6*60/360,i=0==a?0:a/o,{h:r,s:i,b:o,toString:J}},n.rgb2hsl=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a,s,u;return a=O(t,e,n),s=N(t,e,n),u=a-s,r=0==u?null:a==t?(e-n)/u:a==e?(n-t)/u+2:(t-e)/u+4,r=(r+360)%6*60/360,o=(a+s)/2,i=0==u?0:o<.5?u/(2*o):u/(2-2*o),{h:r,s:i,l:o,toString:Y}},n.parsePathString=function(t){if(!t)return null;var e=n.path(t);if(e.arr)return n.path.clone(e.arr);var r={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},o=[];return i(t,"array")&&i(t[0],"array")&&(o=n.path.clone(t)),o.length||S(t).replace(I,function(t,e,n){var i=[],a=e.toLowerCase();if(n.replace(q,function(t,e){e&&i.push(+e)}),"m"==a&&i.length>2&&(o.push([e].concat(i.splice(0,2))),a="l",e="m"==e?"l":"L"),"o"==a&&1==i.length&&o.push([e,i[0]]),"r"==a)o.push([e].concat(i));else for(;i.length>=r[a]&&(o.push([e].concat(i.splice(0,r[a]))),r[a]););}),o.toString=n.path.toString,e.arr=n.path.clone(o),o};var et=n.parseTransformString=function(t){if(!t)return null;var e=[];return i(t,"array")&&i(t[0],"array")&&(e=n.path.clone(t)),e.length||S(t).replace(H,function(t,n,r){var i=[];n.toLowerCase();r.replace(q,function(t,e){e&&i.push(+e)}),e.push([n].concat(i))}),e.toString=n.path.toString,e};n._.svgTransform2string=h,n._.rgTransform=/^[a-z][\s]*-?\.?\d/i,n._.transform2matrix=d,n._unit2px=m;T.doc.contains||T.doc.compareDocumentPosition?function(t,e){var n=9==t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t==r||!(!r||1!=r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e;)if(e=e.parentNode,e==t)return!0;return!1};n._.getSomeDefs=p,n._.getSomeSVG=v,n.select=function(t){return t=S(t).replace(/([^\\]):/g,"$1\\:"),C(T.doc.querySelector(t))},n.selectAll=function(t){for(var e=T.doc.querySelectorAll(t),r=(n.set||Array)(),i=0;i1))return e("snap.util.getattr."+t,r).firstDefined();var l={};l[t]=n,t=l}for(var f in t)t[A](f)&&e("snap.util.attr."+f,r,t[f]);return r},n.parse=function(t){var e=T.doc.createDocumentFragment(),n=!0,r=T.doc.createElement("div");if(t=S(t),t.match(/^\s*<\s*svg(?:\s|>)/)||(t=""+t+"",n=!1),r.innerHTML=t,t=r.getElementsByTagName("svg")[0])if(n)e=t;else for(;t.firstChild;)e.appendChild(t.firstChild);return new x(e)},n.fragment=function(){for(var t=Array.prototype.slice.call(arguments,0),e=T.doc.createDocumentFragment(),r=0,i=t.length;r")}else t&&(e+="/>");return e}}var h=i.prototype,d=r.is,p=String,v=r._unit2px,g=r._.$,m=r._.make,y=r._.getSomeDefs,b="hasOwnProperty",x=r._.wrap;h.getBBox=function(t){if(!r.Matrix||!r.path)return this.node.getBBox();var e=this,n=new r.Matrix;if(e.removed)return r._.box();for(;"use"==e.type;)if(t||(n=n.add(e.transform().localMatrix.translate(e.attr("x")||0,e.attr("y")||0))),e.original)e=e.original;else{var i=e.attr("xlink:href");e=e.original=e.node.ownerDocument.getElementById(i.substring(i.indexOf("#")+1))}var o=e._,a=r.path.get[e.type]||r.path.get.deflt;try{return t?(o.bboxwt=a?r.path.getBBox(e.realPath=a(e)):r._.box(e.node.getBBox()),r._.box(o.bboxwt)):(e.realPath=a(e),e.matrix=e.transform().localMatrix,o.bbox=r.path.getBBox(r.path.map(e.realPath,n.add(e.matrix))),r._.box(o.bbox))}catch(s){return r._.box()}};var w=function(){return this.string};h.transform=function(t){var e=this._;if(null==t){for(var n,i=this,o=new r.Matrix(this.node.getCTM()),a=u(this),s=[a],c=new r.Matrix,l=a.toTransformString(),f=p(a)==p(this.matrix)?p(e.transform):l;"svg"!=i.type&&(i=i.parent());)s.push(u(i));for(n=s.length;n--;)c.add(s[n]);return{string:f,globalMatrix:o,totalMatrix:c,localMatrix:a,diffMatrix:o.clone().add(a.invert()),global:o.toTransformString(),total:c.toTransformString(),local:l,toString:w}}return t instanceof r.Matrix?(this.matrix=t,this._.transform=t.toTransformString()):u(this,t),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?g(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?g(this.node,{patternTransform:this.matrix}):g(this.node,{transform:this.matrix})),this},h.parent=function(){return x(this.node.parentNode)},h.append=h.add=function(t){if(t){if("set"==t.type){var e=this;return t.forEach(function(t){e.add(t)}),this}t=x(t),this.node.appendChild(t.node),t.paper=this.paper}return this},h.appendTo=function(t){return t&&(t=x(t),t.append(this)),this},h.prepend=function(t){if(t){if("set"==t.type){var e,n=this;return t.forEach(function(t){e?e.after(t):n.prepend(t),e=t}),this}t=x(t);var r=t.parent();this.node.insertBefore(t.node,this.node.firstChild),this.add&&this.add(),t.paper=this.paper,this.parent()&&this.parent().add(),r&&r.add()}return this},h.prependTo=function(t){return t=x(t),t.prepend(this),this},h.before=function(t){if("set"==t.type){var e=this;return t.forEach(function(t){var n=t.parent();e.node.parentNode.insertBefore(t.node,e.node),n&&n.add()}),this.parent().add(),this}t=x(t);var n=t.parent();return this.node.parentNode.insertBefore(t.node,this.node),this.parent()&&this.parent().add(),n&&n.add(),t.paper=this.paper,this},h.after=function(t){t=x(t);var e=t.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(t.node,this.node.nextSibling):this.node.parentNode.appendChild(t.node),this.parent()&&this.parent().add(),e&&e.add(),t.paper=this.paper,this},h.insertBefore=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.insertAfter=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node.nextSibling),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.remove=function(){var t=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,t&&t.add(),this},h.select=function(t){return t=p(t).replace(/([^\\]):/g,"$1\\:"),x(this.node.querySelector(t))},h.selectAll=function(t){for(var e=this.node.querySelectorAll(t),n=(r.set||Array)(),i=0;i{contents}',{x:+e.x.toFixed(3),y:+e.y.toFixed(3),width:+e.width.toFixed(3),height:+e.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(n)))}},s.prototype.select=h.select,s.prototype.selectAll=h.selectAll}),r.plugin(function(t,e,n,r,i){function o(t,e,n,r,i,o){return null==e&&"[object SVGMatrix]"==a.call(t)?(this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,void(this.f=t.f)):void(null!=t?(this.a=+t,this.b=+e,this.c=+n,this.d=+r,this.e=+i,this.f=+o):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var a=Object.prototype.toString,s=String,u=Math,c="";!function(e){function n(t){return t[0]*t[0]+t[1]*t[1]}function r(t){var e=u.sqrt(n(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}e.add=function(t,e,n,r,i,a){var s,u,c,l,f=[[],[],[]],h=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],d=[[t,n,i],[e,r,a],[0,0,1]];for(t&&t instanceof o&&(d=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),s=0;s<3;s++)for(u=0;u<3;u++){for(l=0,c=0;c<3;c++)l+=h[s][c]*d[c][u];f[s][u]=l}return this.a=f[0][0],this.b=f[1][0],this.c=f[0][1],this.d=f[1][1],this.e=f[0][2],this.f=f[1][2],this},e.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new o(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},e.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},e.translate=function(t,e){return this.add(1,0,0,1,t,e)},e.scale=function(t,e,n,r){return null==e&&(e=t),(n||r)&&this.add(1,0,0,1,n,r),this.add(t,0,0,e,0,0),(n||r)&&this.add(1,0,0,1,-n,-r),this},e.rotate=function(e,n,r){e=t.rad(e),n=n||0,r=r||0;var i=+u.cos(e).toFixed(9),o=+u.sin(e).toFixed(9);return this.add(i,o,-o,i,n,r),this.add(1,0,0,1,-n,-r)},e.x=function(t,e){return t*this.a+e*this.c+this.e},e.y=function(t,e){return t*this.b+e*this.d+this.f},e.get=function(t){return+this[s.fromCharCode(97+t)].toFixed(4)},e.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},e.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},e.determinant=function(){return this.a*this.d-this.b*this.c},e.split=function(){var e={};e.dx=this.e,e.dy=this.f;var i=[[this.a,this.c],[this.b,this.d]];e.scalex=u.sqrt(n(i[0])),r(i[0]),e.shear=i[0][0]*i[1][0]+i[0][1]*i[1][1],i[1]=[i[1][0]-i[0][0]*e.shear,i[1][1]-i[0][1]*e.shear],e.scaley=u.sqrt(n(i[1])),r(i[1]),e.shear/=e.scaley,this.determinant()<0&&(e.scalex=-e.scalex);var o=-i[0][1],a=i[1][1];return a<0?(e.rotate=t.deg(u.acos(a)),o<0&&(e.rotate=360-e.rotate)):e.rotate=t.deg(u.asin(o)),e.isSimple=!(+e.shear.toFixed(9)||e.scalex.toFixed(9)!=e.scaley.toFixed(9)&&e.rotate),e.isSuperSimple=!+e.shear.toFixed(9)&&e.scalex.toFixed(9)==e.scaley.toFixed(9)&&!e.rotate,e.noRotation=!+e.shear.toFixed(9)&&!e.rotate,e},e.toTransformString=function(t){var e=t||this.split();return+e.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[+e.dx.toFixed(4),+e.dy.toFixed(4)]:c)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:c)+(e.rotate?"r"+[+e.rotate.toFixed(4),0,0]:c))}}(o.prototype),t.Matrix=o,t.matrix=function(t,e,n,r,i,a){return new o(t,e,n,r,i,a)}}),r.plugin(function(t,n,r,i,o){function a(r){return function(i){if(e.stop(),i instanceof o&&1==i.node.childNodes.length&&("radialGradient"==i.node.firstChild.tagName||"linearGradient"==i.node.firstChild.tagName||"pattern"==i.node.firstChild.tagName)&&(i=i.node.firstChild,d(this).appendChild(i),i=f(i)),i instanceof n)if("radialGradient"==i.type||"linearGradient"==i.type||"pattern"==i.type){i.node.id||v(i.node,{id:i.id});var a=g(i.node.id)}else a=i.attr(r);else if(a=t.color(i),a.error){var s=t(d(this).ownerSVGElement).gradient(i);s?(s.node.id||v(s.node,{id:s.id}),a=g(s.node.id)):a=i}else a=m(a);var u={};u[r]=a,v(this.node,u),this.node.style[r]=b}}function s(t){e.stop(),t==+t&&(t+="px"),this.node.style.fontSize=t}function u(t){for(var e=[],n=t.childNodes,r=0,i=n.length;r1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polyline",e)},s.polygon=function(t){arguments.length>1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polygon",e)},function(){function r(){return this.selectAll("stop")}function i(t,e){var r=l("stop"),i={offset:+e+"%"};return t=n.color(t),i["stop-color"]=t.hex,t.opacity<1&&(i["stop-opacity"]=t.opacity),l(r,i),this.node.appendChild(r),this}function o(){if("linearGradient"==this.type){var t=l(this.node,"x1")||0,e=l(this.node,"x2")||1,r=l(this.node,"y1")||0,i=l(this.node,"y2")||0;return n._.box(t,r,math.abs(e-t),math.abs(i-r))}var o=this.node.cx||.5,a=this.node.cy||.5,s=this.node.r||0;return n._.box(o-s,a-s,2*s,2*s)}function a(t,n){function r(t,e){for(var n=(e-f)/(t-h),r=h;ro){if(r&&!v.start){if(d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g),p+=["C"+i(d.start.x),i(d.start.y),i(d.m.x),i(d.m.y),i(d.x),i(d.y)],a)return p;v.start=p,p=["M"+i(d.x),i(d.y)+"C"+i(d.n.x),i(d.n.y),i(d.end.x),i(d.end.y),i(f[5]),i(f[6])].join(),g+=h,s=+f[5],c=+f[6];continue}if(!n&&!r)return d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g)}g+=h,s=+f[5],c=+f[6]}p+=f.shift()+f}return v.end=p,d=n?g:r?v:l(s,c,f[0],f[1],f[2],f[3],f[4],f[5],1)},null,t._.clone)}function l(t,e,n,r,i,o,a,s,u){var c=1-u,l=U(c,3),f=U(c,2),h=u*u,d=h*u,p=l*t+3*f*u*n+3*c*u*u*i+d*a,v=l*e+3*f*u*r+3*c*u*u*o+d*s,g=t+2*u*(n-t)+h*(i-2*n+t),m=e+2*u*(r-e)+h*(o-2*r+e),y=n+2*u*(i-n)+h*(a-2*i+n),b=r+2*u*(o-r)+h*(s-2*o+r),x=c*t+u*n,w=c*e+u*r,_=c*i+u*a,C=c*o+u*s,k=90-180*H.atan2(g-y,m-b)/q;return{x:p,y:v,m:{x:g,y:m},n:{x:y,y:b},start:{x:x,y:w},end:{x:_,y:C},alpha:k}}function f(e,n,r,i,a,s,u,c){t.is(e,"array")||(e=[e,n,r,i,a,s,u,c]);var l=O.apply(null,e);return o(l.min.x,l.min.y,l.max.x-l.min.x,l.max.y-l.min.y)}function h(t,e,n){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height}function d(t,e){return t=o(t),e=o(e),h(e,t.x,t.y)||h(e,t.x2,t.y)||h(e,t.x,t.y2)||h(e,t.x2,t.y2)||h(t,e.x,e.y)||h(t,e.x2,e.y)||h(t,e.x,e.y2)||h(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)}function p(t,e,n,r,i){var o=-3*e+9*n-9*r+3*i,a=t*o+6*e-12*n+6*r;return t*a-3*e+3*n}function v(t,e,n,r,i,o,a,s,u){null==u&&(u=1),u=u>1?1:u<0?0:u;for(var c=u/2,l=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],h=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,v=0;vd;)f/=2,h+=(cV(i,a)||V(e,r)V(o,s))){var u=(t*r-e*n)*(i-a)-(t-n)*(i*s-o*a),c=(t*r-e*n)*(o-s)-(e-r)*(i*s-o*a),l=(t-n)*(o-s)-(e-r)*(i-a);if(l){var f=u/l,h=c/l,d=+f.toFixed(2),p=+h.toFixed(2);if(!(d<+z(t,n).toFixed(2)||d>+V(t,n).toFixed(2)||d<+z(i,a).toFixed(2)||d>+V(i,a).toFixed(2)||p<+z(e,r).toFixed(2)||p>+V(e,r).toFixed(2)||p<+z(o,s).toFixed(2)||p>+V(o,s).toFixed(2)))return{x:f,y:h}}}}function y(t,e,n){var r=f(t),i=f(e);if(!d(r,i))return n?0:[];for(var o=v.apply(0,t),a=v.apply(0,e),s=~~(o/8),u=~~(a/8),c=[],h=[],p={},g=n?0:[],y=0;y=0&&$<=1&&E>=0&&E<=1&&(n?g++:g.push({x:S.x,y:S.y,t1:$,t2:E}))}}return g}function b(t,e){return w(t,e)}function x(t,e){return w(t,e,1)}function w(t,e,n){t=N(t),e=N(e);for(var r,i,o,a,s,u,c,l,f,h,d=n?0:[],p=0,v=t.length;p180),0,u,l]];else f=[["M",t,e],["m",0,-r],["a",n,r,0,1,1,0,2*r],["a",n,r,0,1,1,0,-2*r],["z"]];return f.toString=a,f}function A(e){var n=i(e),r=String.prototype.toLowerCase;if(n.rel)return s(n.rel);t.is(e,"array")&&t.is(e&&e[0],"array")||(e=t.parsePathString(e));var o=[],u=0,c=0,l=0,f=0,h=0;"M"==e[0][0]&&(u=e[0][1],c=e[0][2],l=u,f=c,h++,o.push(["M",u,c]));for(var d=h,p=e.length;d1&&(y=H.sqrt(y),r=y*r,i=y*i);var b=r*r,x=i*i,w=(a==s?-1:1)*H.sqrt(W((b*x-b*m*m-x*g*g)/(b*m*m+x*g*g))),_=w*r*m/i+(e+u)/2,C=w*-i*g/r+(n+c)/2,k=H.asin(((n-C)/i).toFixed(9)),T=H.asin(((c-C)/i).toFixed(9));k=e<_?q-k:k,T=u<_?q-T:T,k<0&&(k=2*q+k),T<0&&(T=2*q+T),s&&k>T&&(k-=2*q),!s&&T>k&&(T-=2*q)}var A=T-k;if(W(A)>h){var S=T,$=u,E=c;T=k+h*(s&&T>k?1:-1),u=_+r*H.cos(T),c=C+i*H.sin(T),p=j(u,c,r,i,o,0,s,$,E,[T,S,_,C])}A=T-k;var O=H.cos(k),N=H.sin(k),D=H.cos(T),M=H.sin(T),P=H.tan(A/4),F=4/3*r*P,B=4/3*i*P,L=[e,n],R=[e+F*N,n-B*O],I=[u+F*M,c-B*D],z=[u,c];if(R[0]=2*L[0]-R[0],R[1]=2*L[1]-R[1],l)return[R,I,z].concat(p);p=[R,I,z].concat(p).join().split(",");for(var V=[],U=0,X=p.length;U7){t[e].shift();for(var n=t[e];n.length;)h[e]="A",o&&(d[e]="A"),t.splice(e++,0,["C"].concat(n.splice(0,6)));t.splice(e,1),m=V(r.length,o&&o.length||0)}},f=function(t,e,n,i,a){t&&e&&"M"==t[a][0]&&"M"!=e[a][0]&&(e.splice(a,0,["M",i.x,i.y]),n.bx=0,n.by=0,n.x=t[a][1],n.y=t[a][2],m=V(r.length,o&&o.length||0))},h=[],d=[],p="",v="",g=0,m=V(r.length,o&&o.length||0);gr;r+=2){var o=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?i-4==r?o[3]={x:+t[0],y:+t[1]}:i-2==r&&(o[2]={x:+t[0],y:+t[1]},o[3]={x:+t[2],y:+t[3]}):o[0]={x:+t[i-2],y:+t[i-1]}:i-4==r?o[3]=o[2]:r||(o[0]={x:+t[r],y:+t[r+1]}),n.push(["C",(-o[0].x+6*o[1].x+o[2].x)/6,(-o[0].y+6*o[1].y+o[2].y)/6,(o[1].x+6*o[2].x-o[3].x)/6,(o[1].y+6*o[2].y-o[3].y)/6,o[2].x,o[2].y])}return n}var P=e.prototype,F=t.is,B=t._.clone,L="hasOwnProperty",R=/,?([a-z]),?/gi,I=parseFloat,H=Math,q=H.PI,z=H.min,V=H.max,U=H.pow,W=H.abs,X=c(1),G=c(),Z=c(0,1),J=t._unit2px,Y={path:function(t){return t.attr("path")},circle:function(t){var e=J(t);return T(e.cx,e.cy,e.r)},ellipse:function(t){var e=J(t);return T(e.cx||0,e.cy||0,e.rx,e.ry)},rect:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height,e.rx,e.ry)},image:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height)},line:function(t){return"M"+[t.attr("x1")||0,t.attr("y1")||0,t.attr("x2"),t.attr("y2")]},polyline:function(t){return"M"+t.attr("points")},polygon:function(t){return"M"+t.attr("points")+"z"},deflt:function(t){var e=t.node.getBBox();return k(e.x,e.y,e.width,e.height)}};t.path=i,t.path.getTotalLength=X,t.path.getPointAtLength=G,t.path.getSubpath=function(t,e,n){if(this.getTotalLength(t)-n<1e-6)return Z(t,e).end;var r=Z(t,n,1);return e?Z(r,e).end:r},P.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()},P.getPointAtLength=function(t){return G(this.attr("d"),t)},P.getSubpath=function(e,n){return t.path.getSubpath(this.attr("d"),e,n)},t._.box=o,t.path.findDotsAtSegment=l,t.path.bezierBBox=f,t.path.isPointInsideBBox=h,t.closest=function(e,n,r,i){for(var a=100,s=o(e-a/2,n-a/2,a,a),u=[],c=r[0].hasOwnProperty("x")?function(t){return{x:r[t].x,y:r[t].y}}:function(t){return{x:r[t],y:i[t]}},l=0;a<=1e6&&!l;){for(var f=0,d=r.length;f1)for(var r=0,i=n.length;r=1&&(delete n[i],o.s=1,t--,function(t){setTimeout(function(){e("mina.finish."+t.id,t)})}(o)),o.update()}t&&r(y)},m=function b(t,e,i,o,a,u,m){var y={id:s(),start:t,end:e,b:i,s:0,dur:o-i,spd:1,get:a,set:u,easing:m||b.linear,status:c,speed:l,duration:f,stop:h,pause:d,resume:p,update:v};n[y.id]=y;var x,w=0;for(x in n)if(n.hasOwnProperty(x)&&(w++,2==w))break;return 1==w&&r(g),y};return m.time=u,m.getById=function(t){return n[t]||null},m.linear=function(t){return t},m.easeout=function(t){return Math.pow(t,1.7)},m.easein=function(t){return Math.pow(t,.48)},m.easeinout=function(t){if(1==t)return 1;if(0==t)return 0;var e=.48-t/1.04,n=Math.sqrt(.1734+e*e),r=n-e,i=Math.pow(Math.abs(r),1/3)*(r<0?-1:1),o=-n-e,a=Math.pow(Math.abs(o),1/3)*(o<0?-1:1),s=i+a+.5;return 3*(1-s)*s*s+s*s*s},m.backin=function(t){if(1==t)return 1;var e=1.70158;return t*t*((e+1)*t-e)},m.backout=function(t){if(0==t)return 0;t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},m.elastic=function(t){return t==!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1},m.bounce=function(t){var e,n=7.5625,r=2.75;return t<1/r?e=n*t*t:t<2/r?(t-=1.5/r,e=n*t*t+.75):t<2.5/r?(t-=2.25/r,e=n*t*t+.9375):(t-=2.625/r,e=n*t*t+.984375),e},t.mina=m,m}("undefined"==typeof e?function(){}:e),r=function(t){function n(t,e){if(t){if(t.nodeType)return C(t);if(i(t,"array")&&n.set)return n.set.apply(n,t);if(t instanceof b)return t;if(null==e)return t=T.doc.querySelector(String(t)),C(t)}return t=null==t?"100%":t,e=null==e?"100%":e,new _(t,e)}function r(t,e){if(e){if("#text"==t&&(t=T.doc.createTextNode(e.text||e["#text"]||"")),"#comment"==t&&(t=T.doc.createComment(e.text||e["#text"]||"")),"string"==typeof t&&(t=r(t)),"string"==typeof e)return 1==t.nodeType?"xlink:"==e.substring(0,6)?t.getAttributeNS(W,e.substring(6)):"xml:"==e.substring(0,4)?t.getAttributeNS(X,e.substring(4)):t.getAttribute(e):"text"==e?t.nodeValue:null;if(1==t.nodeType){for(var n in e)if(e[A](n)){var i=S(e[n]);i?"xlink:"==n.substring(0,6)?t.setAttributeNS(W,n.substring(6),i):"xml:"==n.substring(0,4)?t.setAttributeNS(X,n.substring(4),i):t.setAttribute(n,i):t.removeAttribute(n)}}else"text"in e&&(t.nodeValue=e.text)}else t=T.doc.createElementNS(X,t);return t}function i(t,e){return e=S.prototype.toLowerCase.call(e),"finite"==e?isFinite(t):!("array"!=e||!(t instanceof Array||Array.isArray&&Array.isArray(t)))||("null"==e&&null===t||e==("undefined"==typeof t?"undefined":a(t))&&null!==t||"object"==e&&t===Object(t)||F.call(t).slice(8,-1).toLowerCase()==e)}function o(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var n in t)t[A](n)&&(e[n]=o(t[n]));return e}function s(t,e){for(var n=0,r=t.length;n=1e3&&delete a[u.shift()],u.push(o),a[o]=t.apply(e,i),n?n(a[o]):a[o])}return r}function c(t,e,n,r,i,o){if(null==i){var a=t-n,s=e-r;return a||s?(180+180*j.atan2(-s,-a)/M+360)%360:0}return c(t,e,i,o)-c(n,r,i,o)}function l(t){return t%360*M/180}function f(t){return 180*t/M%360}function h(t){var e=[];return t=t.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(t,n,r){return r=r.split(/\s*,\s*|\s+/),"rotate"==n&&1==r.length&&r.push(0,0),"scale"==n&&(r.length>2?r=r.slice(0,2):2==r.length&&r.push(0,0),1==r.length&&r.push(r[0],0,0)),"skewX"==n?e.push(["m",1,0,j.tan(l(r[0])),1,0,0]):"skewY"==n?e.push(["m",1,j.tan(l(r[0])),0,1,0,0]):e.push([n.charAt(0)].concat(r)),t}),e}function d(t,e){var r=et(t),i=new n.Matrix;if(r)for(var o=0,a=r.length;o.5;){var d,p,v,g,m,y;(v=o-l)>=0&&(m=r(d=u.getPointAtLength(v)))t-n)return e-o+t}return e},n.getRGB=u(function(t){if(!t||(t=S(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:Q};if(!(R[A](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=Z(t)),!t)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};var e,r,o,a,s,u,c=t.match(B);return c?(c[2]&&(o=E(c[2].substring(5),16),r=E(c[2].substring(3,5),16),e=E(c[2].substring(1,3),16)),c[3]&&(o=E((s=c[3].charAt(3))+s,16),r=E((s=c[3].charAt(2))+s,16),e=E((s=c[3].charAt(1))+s,16)),c[4]&&(u=c[4].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e*=2.55),r=$(u[1]),"%"==u[1].slice(-1)&&(r*=2.55),o=$(u[2]),"%"==u[2].slice(-1)&&(o*=2.55),"rgba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100)),c[5]?(u=c[5].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsb2rgb(e,r,o,a)):c[6]?(u=c[6].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsla"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsl2rgb(e,r,o,a)):(e=N(j.round(e),255),r=N(j.round(r),255),o=N(j.round(o),255),a=N(O(a,0),1),c={r:e,g:r,b:o,toString:Q},c.hex="#"+(16777216|o|r<<8|e<<16).toString(16).slice(1),c.opacity=i(a,"finite")?a:1,c)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q}},n),n.hsb=u(function(t,e,r){return n.hsb2rgb(t,e,r).hex}),n.hsl=u(function(t,e,r){return n.hsl2rgb(t,e,r).hex}),n.rgb=u(function(t,e,n,r){if(i(r,"finite")){var o=j.round;return"rgba("+[o(t),o(e),o(n),+r.toFixed(2)]+")"}return"#"+(16777216|n|e<<8|t<<16).toString(16).slice(1)});var Z=function(t){var e=T.doc.getElementsByTagName("head")[0]||T.doc.getElementsByTagName("svg")[0],n="rgb(255, 0, 0)";return(Z=u(function(t){if("red"==t.toLowerCase())return n;e.style.color=n,e.style.color=t;var r=T.doc.defaultView.getComputedStyle(e,P).getPropertyValue("color");return r==n?null:r}))(t)},J=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Q=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},K=function(t,e,r){if(null==e&&i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(r=t.b,e=t.g,t=t.r),null==e&&i(t,string)){var o=n.getRGB(t);t=o.r,e=o.g,r=o.b}return(t>1||e>1||r>1)&&(t/=255,e/=255,r/=255),[t,e,r]},tt=function(t,e,r,o){t=j.round(255*t),e=j.round(255*e),r=j.round(255*r);var a={r:t,g:e,b:r,opacity:i(o,"finite")?o:1,hex:n.rgb(t,e,r),toString:Q};return i(o,"finite")&&(a.opacity=o),a};n.color=function(t){var e;return i(t,"object")&&"h"in t&&"s"in t&&"b"in t?(e=n.hsb2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):i(t,"object")&&"h"in t&&"s"in t&&"l"in t?(e=n.hsl2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):(i(t,"string")&&(t=n.getRGB(t)),i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&!("error"in t)?(e=n.rgb2hsl(t),t.h=e.h,t.s=e.s,t.l=e.l,e=n.rgb2hsb(t),t.v=e.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1,t.error=1)),t.toString=Q,t},n.hsb2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(n=t.b,e=t.s,r=t.o,t=t.h),t*=360;var o,a,s,u,c;return t=t%360/60,c=n*e,u=c*(1-D(t%2-1)),o=a=s=n-c,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.hsl2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(n=t.l,e=t.s,t=t.h),(t>1||e>1||n>1)&&(t/=360,e/=100,n/=100),t*=360;var o,a,s,u,c;return t=t%360/60,c=2*e*(n<.5?n:1-n),u=c*(1-D(t%2-1)),o=a=s=n-c/2,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.rgb2hsb=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a;return o=O(t,e,n),a=o-N(t,e,n),r=0==a?null:o==t?(e-n)/a:o==e?(n-t)/a+2:(t-e)/a+4,r=(r+360)%6*60/360,i=0==a?0:a/o,{h:r,s:i,b:o,toString:J}},n.rgb2hsl=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a,s,u;return a=O(t,e,n),s=N(t,e,n),u=a-s,r=0==u?null:a==t?(e-n)/u:a==e?(n-t)/u+2:(t-e)/u+4,r=(r+360)%6*60/360,o=(a+s)/2,i=0==u?0:o<.5?u/(2*o):u/(2-2*o),{h:r,s:i,l:o,toString:Y}},n.parsePathString=function(t){if(!t)return null;var e=n.path(t);if(e.arr)return n.path.clone(e.arr);var r={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},o=[];return i(t,"array")&&i(t[0],"array")&&(o=n.path.clone(t)),o.length||S(t).replace(I,function(t,e,n){var i=[],a=e.toLowerCase();if(n.replace(H,function(t,e){e&&i.push(+e)}),"m"==a&&i.length>2&&(o.push([e].concat(i.splice(0,2))),a="l",e="m"==e?"l":"L"),"o"==a&&1==i.length&&o.push([e,i[0]]),"r"==a)o.push([e].concat(i));else for(;i.length>=r[a]&&(o.push([e].concat(i.splice(0,r[a]))),r[a]););}),o.toString=n.path.toString,e.arr=n.path.clone(o),o};var et=n.parseTransformString=function(t){if(!t)return null;var e=[];return i(t,"array")&&i(t[0],"array")&&(e=n.path.clone(t)),e.length||S(t).replace(q,function(t,n,r){var i=[];n.toLowerCase();r.replace(H,function(t,e){e&&i.push(+e)}),e.push([n].concat(i))}),e.toString=n.path.toString,e};n._.svgTransform2string=h,n._.rgTransform=/^[a-z][\s]*-?\.?\d/i,n._.transform2matrix=d,n._unit2px=m;T.doc.contains||T.doc.compareDocumentPosition?function(t,e){var n=9==t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t==r||!(!r||1!=r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e;)if(e=e.parentNode,e==t)return!0;return!1};n._.getSomeDefs=p,n._.getSomeSVG=v,n.select=function(t){return t=S(t).replace(/([^\\]):/g,"$1\\:"),C(T.doc.querySelector(t))},n.selectAll=function(t){for(var e=T.doc.querySelectorAll(t),r=(n.set||Array)(),i=0;i1))return e("snap.util.getattr."+t,r).firstDefined();var l={};l[t]=n,t=l}for(var f in t)t[A](f)&&e("snap.util.attr."+f,r,t[f]);return r},n.parse=function(t){var e=T.doc.createDocumentFragment(),n=!0,r=T.doc.createElement("div");if(t=S(t),t.match(/^\s*<\s*svg(?:\s|>)/)||(t=""+t+"",n=!1),r.innerHTML=t,t=r.getElementsByTagName("svg")[0])if(n)e=t;else for(;t.firstChild;)e.appendChild(t.firstChild);return new x(e)},n.fragment=function(){for(var t=Array.prototype.slice.call(arguments,0),e=T.doc.createDocumentFragment(),r=0,i=t.length;r")}else t&&(e+="/>");return e}}var h=i.prototype,d=r.is,p=String,v=r._unit2px,g=r._.$,m=r._.make,y=r._.getSomeDefs,b="hasOwnProperty",x=r._.wrap;h.getBBox=function(t){if(!r.Matrix||!r.path)return this.node.getBBox();var e=this,n=new r.Matrix;if(e.removed)return r._.box();for(;"use"==e.type;)if(t||(n=n.add(e.transform().localMatrix.translate(e.attr("x")||0,e.attr("y")||0))),e.original)e=e.original;else{var i=e.attr("xlink:href");e=e.original=e.node.ownerDocument.getElementById(i.substring(i.indexOf("#")+1))}var o=e._,a=r.path.get[e.type]||r.path.get.deflt;try{return t?(o.bboxwt=a?r.path.getBBox(e.realPath=a(e)):r._.box(e.node.getBBox()),r._.box(o.bboxwt)):(e.realPath=a(e),e.matrix=e.transform().localMatrix,o.bbox=r.path.getBBox(r.path.map(e.realPath,n.add(e.matrix))),r._.box(o.bbox))}catch(s){return r._.box()}};var w=function(){return this.string};h.transform=function(t){var e=this._;if(null==t){for(var n,i=this,o=new r.Matrix(this.node.getCTM()),a=u(this),s=[a],c=new r.Matrix,l=a.toTransformString(),f=p(a)==p(this.matrix)?p(e.transform):l;"svg"!=i.type&&(i=i.parent());)s.push(u(i));for(n=s.length;n--;)c.add(s[n]);return{string:f,globalMatrix:o,totalMatrix:c,localMatrix:a,diffMatrix:o.clone().add(a.invert()),global:o.toTransformString(),total:c.toTransformString(),local:l,toString:w}}return t instanceof r.Matrix?(this.matrix=t,this._.transform=t.toTransformString()):u(this,t),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?g(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?g(this.node,{patternTransform:this.matrix}):g(this.node,{transform:this.matrix})),this},h.parent=function(){return x(this.node.parentNode)},h.append=h.add=function(t){if(t){if("set"==t.type){var e=this;return t.forEach(function(t){e.add(t)}),this}t=x(t),this.node.appendChild(t.node),t.paper=this.paper}return this},h.appendTo=function(t){return t&&(t=x(t),t.append(this)),this},h.prepend=function(t){if(t){if("set"==t.type){var e,n=this;return t.forEach(function(t){e?e.after(t):n.prepend(t),e=t}),this}t=x(t);var r=t.parent();this.node.insertBefore(t.node,this.node.firstChild),this.add&&this.add(),t.paper=this.paper,this.parent()&&this.parent().add(),r&&r.add()}return this},h.prependTo=function(t){return t=x(t),t.prepend(this),this},h.before=function(t){if("set"==t.type){var e=this;return t.forEach(function(t){var n=t.parent();e.node.parentNode.insertBefore(t.node,e.node),n&&n.add()}),this.parent().add(),this}t=x(t);var n=t.parent();return this.node.parentNode.insertBefore(t.node,this.node),this.parent()&&this.parent().add(),n&&n.add(),t.paper=this.paper,this},h.after=function(t){t=x(t);var e=t.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(t.node,this.node.nextSibling):this.node.parentNode.appendChild(t.node),this.parent()&&this.parent().add(),e&&e.add(),t.paper=this.paper,this},h.insertBefore=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.insertAfter=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node.nextSibling),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.remove=function(){var t=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,t&&t.add(),this},h.select=function(t){return t=p(t).replace(/([^\\]):/g,"$1\\:"),x(this.node.querySelector(t))},h.selectAll=function(t){for(var e=this.node.querySelectorAll(t),n=(r.set||Array)(),i=0;i{contents}',{x:+e.x.toFixed(3),y:+e.y.toFixed(3),width:+e.width.toFixed(3),height:+e.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(n)))}},s.prototype.select=h.select,s.prototype.selectAll=h.selectAll}),r.plugin(function(t,e,n,r,i){function o(t,e,n,r,i,o){return null==e&&"[object SVGMatrix]"==a.call(t)?(this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,void(this.f=t.f)):void(null!=t?(this.a=+t,this.b=+e,this.c=+n,this.d=+r,this.e=+i,this.f=+o):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var a=Object.prototype.toString,s=String,u=Math,c="";!function(e){function n(t){return t[0]*t[0]+t[1]*t[1]}function r(t){var e=u.sqrt(n(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}e.add=function(t,e,n,r,i,a){var s,u,c,l,f=[[],[],[]],h=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],d=[[t,n,i],[e,r,a],[0,0,1]];for(t&&t instanceof o&&(d=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),s=0;s<3;s++)for(u=0;u<3;u++){for(l=0,c=0;c<3;c++)l+=h[s][c]*d[c][u];f[s][u]=l}return this.a=f[0][0],this.b=f[1][0],this.c=f[0][1],this.d=f[1][1],this.e=f[0][2],this.f=f[1][2],this},e.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new o(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},e.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},e.translate=function(t,e){return this.add(1,0,0,1,t,e)},e.scale=function(t,e,n,r){return null==e&&(e=t),(n||r)&&this.add(1,0,0,1,n,r),this.add(t,0,0,e,0,0),(n||r)&&this.add(1,0,0,1,-n,-r),this},e.rotate=function(e,n,r){e=t.rad(e),n=n||0,r=r||0;var i=+u.cos(e).toFixed(9),o=+u.sin(e).toFixed(9);return this.add(i,o,-o,i,n,r),this.add(1,0,0,1,-n,-r)},e.x=function(t,e){return t*this.a+e*this.c+this.e},e.y=function(t,e){return t*this.b+e*this.d+this.f},e.get=function(t){return+this[s.fromCharCode(97+t)].toFixed(4)},e.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},e.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},e.determinant=function(){return this.a*this.d-this.b*this.c},e.split=function(){var e={};e.dx=this.e,e.dy=this.f;var i=[[this.a,this.c],[this.b,this.d]];e.scalex=u.sqrt(n(i[0])),r(i[0]),e.shear=i[0][0]*i[1][0]+i[0][1]*i[1][1],i[1]=[i[1][0]-i[0][0]*e.shear,i[1][1]-i[0][1]*e.shear],e.scaley=u.sqrt(n(i[1])),r(i[1]),e.shear/=e.scaley,this.determinant()<0&&(e.scalex=-e.scalex);var o=-i[0][1],a=i[1][1];return a<0?(e.rotate=t.deg(u.acos(a)),o<0&&(e.rotate=360-e.rotate)):e.rotate=t.deg(u.asin(o)),e.isSimple=!(+e.shear.toFixed(9)||e.scalex.toFixed(9)!=e.scaley.toFixed(9)&&e.rotate),e.isSuperSimple=!+e.shear.toFixed(9)&&e.scalex.toFixed(9)==e.scaley.toFixed(9)&&!e.rotate,e.noRotation=!+e.shear.toFixed(9)&&!e.rotate,e},e.toTransformString=function(t){var e=t||this.split();return+e.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[+e.dx.toFixed(4),+e.dy.toFixed(4)]:c)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:c)+(e.rotate?"r"+[+e.rotate.toFixed(4),0,0]:c))}}(o.prototype),t.Matrix=o,t.matrix=function(t,e,n,r,i,a){return new o(t,e,n,r,i,a)}}),r.plugin(function(t,n,r,i,o){function a(r){return function(i){if(e.stop(),i instanceof o&&1==i.node.childNodes.length&&("radialGradient"==i.node.firstChild.tagName||"linearGradient"==i.node.firstChild.tagName||"pattern"==i.node.firstChild.tagName)&&(i=i.node.firstChild,d(this).appendChild(i),i=f(i)),i instanceof n)if("radialGradient"==i.type||"linearGradient"==i.type||"pattern"==i.type){i.node.id||v(i.node,{id:i.id});var a=g(i.node.id)}else a=i.attr(r);else if(a=t.color(i),a.error){var s=t(d(this).ownerSVGElement).gradient(i);s?(s.node.id||v(s.node,{id:s.id}),a=g(s.node.id)):a=i}else a=m(a);var u={};u[r]=a,v(this.node,u),this.node.style[r]=b}}function s(t){e.stop(),t==+t&&(t+="px"),this.node.style.fontSize=t}function u(t){for(var e=[],n=t.childNodes,r=0,i=n.length;r1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polyline",e)},s.polygon=function(t){arguments.length>1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polygon",e)},function(){function r(){return this.selectAll("stop")}function i(t,e){var r=l("stop"),i={offset:+e+"%"};return t=n.color(t),i["stop-color"]=t.hex,t.opacity<1&&(i["stop-opacity"]=t.opacity),l(r,i),this.node.appendChild(r),this}function o(){if("linearGradient"==this.type){var t=l(this.node,"x1")||0,e=l(this.node,"x2")||1,r=l(this.node,"y1")||0,i=l(this.node,"y2")||0;return n._.box(t,r,math.abs(e-t),math.abs(i-r))}var o=this.node.cx||.5,a=this.node.cy||.5,s=this.node.r||0;return n._.box(o-s,a-s,2*s,2*s)}function a(t,n){function r(t,e){for(var n=(e-f)/(t-h),r=h;ro){if(r&&!v.start){if(d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g),p+=["C"+i(d.start.x),i(d.start.y),i(d.m.x),i(d.m.y),i(d.x),i(d.y)],a)return p;v.start=p,p=["M"+i(d.x),i(d.y)+"C"+i(d.n.x),i(d.n.y),i(d.end.x),i(d.end.y),i(f[5]),i(f[6])].join(),g+=h,s=+f[5],c=+f[6];continue}if(!n&&!r)return d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g)}g+=h,s=+f[5],c=+f[6]}p+=f.shift()+f}return v.end=p,d=n?g:r?v:l(s,c,f[0],f[1],f[2],f[3],f[4],f[5],1)},null,t._.clone)}function l(t,e,n,r,i,o,a,s,u){var c=1-u,l=U(c,3),f=U(c,2),h=u*u,d=h*u,p=l*t+3*f*u*n+3*c*u*u*i+d*a,v=l*e+3*f*u*r+3*c*u*u*o+d*s,g=t+2*u*(n-t)+h*(i-2*n+t),m=e+2*u*(r-e)+h*(o-2*r+e),y=n+2*u*(i-n)+h*(a-2*i+n),b=r+2*u*(o-r)+h*(s-2*o+r),x=c*t+u*n,w=c*e+u*r,_=c*i+u*a,C=c*o+u*s,k=90-180*q.atan2(g-y,m-b)/H;return{x:p,y:v,m:{x:g,y:m},n:{x:y,y:b},start:{x:x,y:w},end:{x:_,y:C},alpha:k}}function f(e,n,r,i,a,s,u,c){t.is(e,"array")||(e=[e,n,r,i,a,s,u,c]);var l=O.apply(null,e);return o(l.min.x,l.min.y,l.max.x-l.min.x,l.max.y-l.min.y)}function h(t,e,n){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height}function d(t,e){return t=o(t),e=o(e),h(e,t.x,t.y)||h(e,t.x2,t.y)||h(e,t.x,t.y2)||h(e,t.x2,t.y2)||h(t,e.x,e.y)||h(t,e.x2,e.y)||h(t,e.x,e.y2)||h(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)}function p(t,e,n,r,i){var o=-3*e+9*n-9*r+3*i,a=t*o+6*e-12*n+6*r;return t*a-3*e+3*n}function v(t,e,n,r,i,o,a,s,u){null==u&&(u=1),u=u>1?1:u<0?0:u;for(var c=u/2,l=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],h=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,v=0;vd;)f/=2,h+=(cV(i,a)||V(e,r)V(o,s))){var u=(t*r-e*n)*(i-a)-(t-n)*(i*s-o*a),c=(t*r-e*n)*(o-s)-(e-r)*(i*s-o*a),l=(t-n)*(o-s)-(e-r)*(i-a);if(l){var f=u/l,h=c/l,d=+f.toFixed(2),p=+h.toFixed(2);if(!(d<+z(t,n).toFixed(2)||d>+V(t,n).toFixed(2)||d<+z(i,a).toFixed(2)||d>+V(i,a).toFixed(2)||p<+z(e,r).toFixed(2)||p>+V(e,r).toFixed(2)||p<+z(o,s).toFixed(2)||p>+V(o,s).toFixed(2)))return{x:f,y:h}}}}function y(t,e,n){var r=f(t),i=f(e);if(!d(r,i))return n?0:[];for(var o=v.apply(0,t),a=v.apply(0,e),s=~~(o/8),u=~~(a/8),c=[],h=[],p={},g=n?0:[],y=0;y=0&&$<=1&&E>=0&&E<=1&&(n?g++:g.push({x:S.x,y:S.y,t1:$,t2:E}))}}return g}function b(t,e){return w(t,e)}function x(t,e){return w(t,e,1)}function w(t,e,n){t=N(t),e=N(e);for(var r,i,o,a,s,u,c,l,f,h,d=n?0:[],p=0,v=t.length;p180),0,u,l]];else f=[["M",t,e],["m",0,-r],["a",n,r,0,1,1,0,2*r],["a",n,r,0,1,1,0,-2*r],["z"]];return f.toString=a,f}function A(e){var n=i(e),r=String.prototype.toLowerCase;if(n.rel)return s(n.rel);t.is(e,"array")&&t.is(e&&e[0],"array")||(e=t.parsePathString(e));var o=[],u=0,c=0,l=0,f=0,h=0;"M"==e[0][0]&&(u=e[0][1],c=e[0][2],l=u,f=c,h++,o.push(["M",u,c]));for(var d=h,p=e.length;d1&&(y=q.sqrt(y),r=y*r,i=y*i);var b=r*r,x=i*i,w=(a==s?-1:1)*q.sqrt(W((b*x-b*m*m-x*g*g)/(b*m*m+x*g*g))),_=w*r*m/i+(e+u)/2,C=w*-i*g/r+(n+c)/2,k=q.asin(((n-C)/i).toFixed(9)),T=q.asin(((c-C)/i).toFixed(9));k=e<_?H-k:k,T=u<_?H-T:T,k<0&&(k=2*H+k),T<0&&(T=2*H+T),s&&k>T&&(k-=2*H),!s&&T>k&&(T-=2*H)}var A=T-k;if(W(A)>h){var S=T,$=u,E=c;T=k+h*(s&&T>k?1:-1),u=_+r*q.cos(T),c=C+i*q.sin(T),p=j(u,c,r,i,o,0,s,$,E,[T,S,_,C])}A=T-k;var O=q.cos(k),N=q.sin(k),D=q.cos(T),M=q.sin(T),P=q.tan(A/4),F=4/3*r*P,B=4/3*i*P,L=[e,n],R=[e+F*N,n-B*O],I=[u+F*M,c-B*D],z=[u,c];if(R[0]=2*L[0]-R[0],R[1]=2*L[1]-R[1],l)return[R,I,z].concat(p);p=[R,I,z].concat(p).join().split(",");for(var V=[],U=0,X=p.length;U7){t[e].shift();for(var n=t[e];n.length;)h[e]="A",o&&(d[e]="A"),t.splice(e++,0,["C"].concat(n.splice(0,6)));t.splice(e,1),m=V(r.length,o&&o.length||0)}},f=function(t,e,n,i,a){t&&e&&"M"==t[a][0]&&"M"!=e[a][0]&&(e.splice(a,0,["M",i.x,i.y]),n.bx=0,n.by=0,n.x=t[a][1],n.y=t[a][2],m=V(r.length,o&&o.length||0))},h=[],d=[],p="",v="",g=0,m=V(r.length,o&&o.length||0);gr;r+=2){var o=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?i-4==r?o[3]={x:+t[0],y:+t[1]}:i-2==r&&(o[2]={x:+t[0],y:+t[1]},o[3]={x:+t[2],y:+t[3]}):o[0]={x:+t[i-2],y:+t[i-1]}:i-4==r?o[3]=o[2]:r||(o[0]={x:+t[r],y:+t[r+1]}),n.push(["C",(-o[0].x+6*o[1].x+o[2].x)/6,(-o[0].y+6*o[1].y+o[2].y)/6,(o[1].x+6*o[2].x-o[3].x)/6,(o[1].y+6*o[2].y-o[3].y)/6,o[2].x,o[2].y])}return n}var P=e.prototype,F=t.is,B=t._.clone,L="hasOwnProperty",R=/,?([a-z]),?/gi,I=parseFloat,q=Math,H=q.PI,z=q.min,V=q.max,U=q.pow,W=q.abs,X=c(1),G=c(),Z=c(0,1),J=t._unit2px,Y={path:function(t){return t.attr("path")},circle:function(t){var e=J(t);return T(e.cx,e.cy,e.r)},ellipse:function(t){var e=J(t);return T(e.cx||0,e.cy||0,e.rx,e.ry)},rect:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height,e.rx,e.ry)},image:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height)},line:function(t){return"M"+[t.attr("x1")||0,t.attr("y1")||0,t.attr("x2"),t.attr("y2")]},polyline:function(t){return"M"+t.attr("points")},polygon:function(t){return"M"+t.attr("points")+"z"},deflt:function(t){var e=t.node.getBBox();return k(e.x,e.y,e.width,e.height)}};t.path=i,t.path.getTotalLength=X,t.path.getPointAtLength=G,t.path.getSubpath=function(t,e,n){if(this.getTotalLength(t)-n<1e-6)return Z(t,e).end;var r=Z(t,n,1);return e?Z(r,e).end:r},P.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()},P.getPointAtLength=function(t){return G(this.attr("d"),t)},P.getSubpath=function(e,n){return t.path.getSubpath(this.attr("d"),e,n)},t._.box=o,t.path.findDotsAtSegment=l,t.path.bezierBBox=f,t.path.isPointInsideBBox=h,t.closest=function(e,n,r,i){for(var a=100,s=o(e-a/2,n-a/2,a,a),u=[],c=r[0].hasOwnProperty("x")?function(t){return{x:r[t].x,y:r[t].y}}:function(t){return{x:r[t],y:i[t]}},l=0;a<=1e6&&!l;){for(var f=0,d=r.length;fm&&(g=m,u[f].len=m,v=u[f])}return v}},t.path.isBBoxIntersect=d,t.path.intersection=b,t.path.intersectionNumber=x,t.path.isPointInside=_,t.path.getBBox=C,t.path.get=Y,t.path.toRelative=A,t.path.toAbsolute=S,t.path.toCubic=N,t.path.map=D,t.path.toString=a,t.path.clone=s}),r.plugin(function(t,r,i,o){var a=Math.max,s=Math.min,u=function(t){if(this.items=[],this.bindings={},this.length=0,this.type="set",t)for(var e=0,n=t.length;e',{def:r})},t.filter.blur.toString=function(){return this()},t.filter.shadow=function(e,n,r,i,o){return"string"==typeof r&&(i=r,o=i,r=4),"string"!=typeof i&&(o=i,i="#000"),i=i||"#000",null==r&&(r=4),null==o&&(o=1),null==e&&(e=0,n=2),null==n&&(n=e),i=t.color(i),t.format('',{color:i,dx:e,dy:n,blur:r,opacity:o})},t.filter.shadow.toString=function(){return this()},t.filter.grayscale=function(e){return null==e&&(e=1),t.format('',{a:.2126+.7874*(1-e),b:.7152-.7152*(1-e),c:.0722-.0722*(1-e),d:.2126-.2126*(1-e),e:.7152+.2848*(1-e),f:.0722-.0722*(1-e),g:.2126-.2126*(1-e),h:.0722+.9278*(1-e)})},t.filter.grayscale.toString=function(){return this()},t.filter.sepia=function(e){return null==e&&(e=1),t.format('',{a:.393+.607*(1-e),b:.769-.769*(1-e),c:.189-.189*(1-e),d:.349-.349*(1-e),e:.686+.314*(1-e),f:.168-.168*(1-e),g:.272-.272*(1-e),h:.534-.534*(1-e),i:.131+.869*(1-e)})},t.filter.sepia.toString=function(){return this()},t.filter.saturate=function(e){return null==e&&(e=1),t.format('',{amount:1-e})},t.filter.saturate.toString=function(){return this()},t.filter.hueRotate=function(e){return e=e||0,t.format('',{angle:e})},t.filter.hueRotate.toString=function(){return this()},t.filter.invert=function(e){return null==e&&(e=1),t.format('',{amount:e,amount2:1-e})},t.filter.invert.toString=function(){return this()},t.filter.brightness=function(e){return null==e&&(e=1),t.format('',{amount:e})},t.filter.brightness.toString=function(){return this()},t.filter.contrast=function(e){return null==e&&(e=1),t.format('',{amount:e,amount2:.5-e/2})},t.filter.contrast.toString=function(){return this()}}),r.plugin(function(t,e,n,r,i){var o=t._.box,a=t.is,s=/^[^a-z]*([tbmlrc])/i,u=function(){return"T"+this.dx+","+this.dy};e.prototype.getAlign=function(t,e){null==e&&a(t,"string")&&(e=t,t=null),t=t||this.paper;var n=t.getBBox?t.getBBox():o(t),r=this.getBBox(),i={};switch(e=e&&e.match(s),e=e?e[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=n.y-r.y;break;case"b":i.dx=0,i.dy=n.y2-r.y2;break;case"m":i.dx=0,i.dy=n.cy-r.cy;break;case"l":i.dx=n.x-r.x,i.dy=0;break;case"r":i.dx=n.x2-r.x2,i.dy=0;break;default:i.dx=n.cx-r.cx,i.dy=0}return i.toString=u,i},e.prototype.align=function(t,e){return this.transform("..."+this.getAlign(t,e))}}),r})}).call(window)},function(t,e,n){var r,i;(function(t){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};/*! * jQuery JavaScript Library v3.0.0 * https://jquery.com/ @@ -13,7 +13,7 @@ * * Date: 2016-06-09T18:02Z */ -!function(e,r){"object"===n(t)&&"object"===n(t.exports)?t.exports=e.document?r(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return r(t)}:r(e)}("undefined"!=typeof window?window:void 0,function(o,a){function s(t,e){e=e||it;var n=e.createElement("script");n.text=t,e.head.appendChild(n).parentNode.removeChild(n)}function u(t){var e=!!t&&"length"in t&&t.length,n=mt.type(t);return"function"!==n&&!mt.isWindow(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function c(t,e,n){if(mt.isFunction(e))return mt.grep(t,function(t,r){return!!e.call(t,r,t)!==n});if(e.nodeType)return mt.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(St.test(e))return mt.filter(e,t,n);e=mt.filter(e,t)}return mt.grep(t,function(t){return ct.call(e,t)>-1!==n&&1===t.nodeType})}function l(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function f(t){var e={};return mt.each(t.match(Dt)||[],function(t,n){e[n]=!0}),e}function h(t){return t}function d(t){throw t}function p(t,e,n){var r;try{t&&mt.isFunction(r=t.promise)?r.call(t).done(e).fail(n):t&&mt.isFunction(r=t.then)?r.call(t,e,n):e.call(void 0,t)}catch(t){n.call(void 0,t)}}function v(){it.removeEventListener("DOMContentLoaded",v),o.removeEventListener("load",v),mt.ready()}function g(){this.expando=mt.expando+g.uid++}function m(t,e,n){var r;if(void 0===n&&1===t.nodeType)if(r="data-"+e.replace(Ht,"-$&").toLowerCase(),n=t.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:It.test(n)?JSON.parse(n):n)}catch(i){}Rt.set(t,e,n)}else n=void 0;return n}function y(t,e,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return mt.css(t,e,"")},u=s(),c=n&&n[3]||(mt.cssNumber[e]?"":"px"),l=(mt.cssNumber[e]||"px"!==c&&+u)&&zt.exec(mt.css(t,e));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do o=o||".5",l/=o,mt.style(t,e,l+c);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function b(t){var e,n=t.ownerDocument,r=t.nodeName,i=Xt[r];return i?i:(e=n.body.appendChild(n.createElement(r)),i=mt.css(e,"display"),e.parentNode.removeChild(e),"none"===i&&(i="block"),Xt[r]=i,i)}function x(t,e){for(var n,r,i=[],o=0,a=t.length;o-1)i&&i.push(o);else if(c=mt.contains(o.ownerDocument,o),a=w(f.appendChild(o),"script"),c&&_(a),n)for(l=0;o=a[l++];)Jt.test(o.type||"")&&n.push(o);return f}function k(){return!0}function T(){return!1}function A(){try{return it.activeElement}catch(t){}}function S(t,e,r,i,o,a){var s,u;if("object"===("undefined"==typeof e?"undefined":n(e))){"string"!=typeof r&&(i=i||r,r=void 0);for(u in e)S(t,u,r,i,e[u],a);return t}if(null==i&&null==o?(o=r,i=r=void 0):null==o&&("string"==typeof r?(o=i,i=void 0):(o=i,i=r,r=void 0)),o===!1)o=T;else if(!o)return t;return 1===a&&(s=o,o=function(t){return mt().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=mt.guid++)),t.each(function(){mt.event.add(this,e,o,i,r)})}function $(t,e){return mt.nodeName(t,"table")&&mt.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t:t}function E(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function j(t){var e=ae.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function O(t,e){var n,r,i,o,a,s,u,c;if(1===e.nodeType){if(Lt.hasData(t)&&(o=Lt.access(t),a=Lt.set(e,o),c=o.events)){delete a.handle,a.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof p&&!vt.checkClone&&oe.test(p))return t.each(function(i){var o=t.eq(i);v&&(e[0]=p.call(this,i,o.html())),D(o,e,n,r)});if(h&&(i=C(e,t[0].ownerDocument,!1,t,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=mt.map(w(i,"script"),E),u=a.length;f=0&&n0&&e-1 in t)}function c(t,e,n){if(mt.isFunction(e))return mt.grep(t,function(t,r){return!!e.call(t,r,t)!==n});if(e.nodeType)return mt.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(St.test(e))return mt.filter(e,t,n);e=mt.filter(e,t)}return mt.grep(t,function(t){return ct.call(e,t)>-1!==n&&1===t.nodeType})}function l(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function f(t){var e={};return mt.each(t.match(Dt)||[],function(t,n){e[n]=!0}),e}function h(t){return t}function d(t){throw t}function p(t,e,n){var r;try{t&&mt.isFunction(r=t.promise)?r.call(t).done(e).fail(n):t&&mt.isFunction(r=t.then)?r.call(t,e,n):e.call(void 0,t)}catch(t){n.call(void 0,t)}}function v(){it.removeEventListener("DOMContentLoaded",v),o.removeEventListener("load",v),mt.ready()}function g(){this.expando=mt.expando+g.uid++}function m(t,e,n){var r;if(void 0===n&&1===t.nodeType)if(r="data-"+e.replace(qt,"-$&").toLowerCase(),n=t.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:It.test(n)?JSON.parse(n):n)}catch(i){}Rt.set(t,e,n)}else n=void 0;return n}function y(t,e,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return mt.css(t,e,"")},u=s(),c=n&&n[3]||(mt.cssNumber[e]?"":"px"),l=(mt.cssNumber[e]||"px"!==c&&+u)&&zt.exec(mt.css(t,e));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do o=o||".5",l/=o,mt.style(t,e,l+c);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function b(t){var e,n=t.ownerDocument,r=t.nodeName,i=Xt[r];return i?i:(e=n.body.appendChild(n.createElement(r)),i=mt.css(e,"display"),e.parentNode.removeChild(e),"none"===i&&(i="block"),Xt[r]=i,i)}function x(t,e){for(var n,r,i=[],o=0,a=t.length;o-1)i&&i.push(o);else if(c=mt.contains(o.ownerDocument,o),a=w(f.appendChild(o),"script"),c&&_(a),n)for(l=0;o=a[l++];)Jt.test(o.type||"")&&n.push(o);return f}function k(){return!0}function T(){return!1}function A(){try{return it.activeElement}catch(t){}}function S(t,e,r,i,o,a){var s,u;if("object"===("undefined"==typeof e?"undefined":n(e))){"string"!=typeof r&&(i=i||r,r=void 0);for(u in e)S(t,u,r,i,e[u],a);return t}if(null==i&&null==o?(o=r,i=r=void 0):null==o&&("string"==typeof r?(o=i,i=void 0):(o=i,i=r,r=void 0)),o===!1)o=T;else if(!o)return t;return 1===a&&(s=o,o=function(t){return mt().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=mt.guid++)),t.each(function(){mt.event.add(this,e,o,i,r)})}function $(t,e){return mt.nodeName(t,"table")&&mt.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t:t}function E(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function j(t){var e=ae.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function O(t,e){var n,r,i,o,a,s,u,c;if(1===e.nodeType){if(Lt.hasData(t)&&(o=Lt.access(t),a=Lt.set(e,o),c=o.events)){delete a.handle,a.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof p&&!vt.checkClone&&oe.test(p))return t.each(function(i){var o=t.eq(i);v&&(e[0]=p.call(this,i,o.html())),D(o,e,n,r)});if(h&&(i=C(e,t[0].ownerDocument,!1,t,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=mt.map(w(i,"script"),E),u=a.length;f=0&&nC.cacheLength&&delete t[e.shift()],t[n+" "]=r}var e=[];return t}function r(t){return t[I]=!0,t}function i(t){var e=D.createElement("fieldset");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function o(t,e){for(var n=t.split("|"),r=n.length;r--;)C.attrHandle[n[r]]=e}function a(t,e){var n=e&&t,r=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function s(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function u(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function c(t){return function(e){return"label"in e&&e.disabled===t||"form"in e&&e.disabled===t||"form"in e&&e.disabled===!1&&(e.isDisabled===t||e.isDisabled!==!t&&("label"in e||!kt(e))!==t)}}function l(t){return r(function(e){return e=+e,r(function(n,r){for(var i,o=t([],n.length,e),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function h(){}function d(t){for(var e=0,n=t.length,r="";e1?function(e,n,r){for(var i=t.length;i--;)if(!t[i](e,n,r))return!1;return!0}:t[0]}function g(t,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(a[c]=f))}}else b=m(b===a?b.splice(p,b.length):b),o?o(null,a,b,u):Q.apply(a,b)})}function b(t){for(var e,n,r,i=t.length,o=C.relative[t[0].type],a=o||C.relative[" "],s=o?1:0,u=p(function(t){return t===e},a,!0),c=p(function(t){return tt(e,t)>-1},a,!0),l=[function(t,n,r){var i=!o&&(r||n!==E)||((e=n).nodeType?u(t,n,r):c(t,n,r));return e=null,i}];s1&&v(l),s>1&&d(t.slice(0,s-1).concat({value:" "===t[s-2].type?"*":""})).replace(st,"$1"),n,s0,o=t.length>0,a=function(r,a,s,u,c){var l,f,h,d=0,p="0",v=r&&[],g=[],y=E,b=r||o&&C.find.TAG("*",c),x=q+=null==y?1:Math.random()||.1,w=b.length;for(c&&(E=a===D||a||c);p!==w&&null!=(l=b[p]);p++){if(o&&l){for(f=0,a||l.ownerDocument===D||(N(l),s=!P);h=t[f++];)if(h(l,a||D,s)){u.push(l);break}c&&(q=x)}i&&((l=!h&&l)&&d--,r&&v.push(l))}if(d+=p,i&&p!==d){for(f=0;h=n[f++];)h(v,g,a,s);if(r){if(d>0)for(;p--;)v[p]||g[p]||(g[p]=J.call(u));g=m(g)}Q.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&e.uniqueSort(u)}return c&&(q=x,E=y),v};return i?r(a):a}var w,_,C,k,T,A,S,$,E,j,O,N,D,M,P,F,B,L,R,I="sizzle"+1*new Date,H=t.document,q=0,z=0,V=n(),U=n(),W=n(),X=function(t,e){return t===e&&(O=!0),0},G={}.hasOwnProperty,Z=[],J=Z.pop,Y=Z.push,Q=Z.push,K=Z.slice,tt=function(t,e){for(var n=0,r=t.length;n+~]|"+nt+")"+nt+"*"),lt=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),ft=new RegExp(ot),ht=new RegExp("^"+rt+"$"),dt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),TAG:new RegExp("^("+rt+"|[*])"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},pt=/^(?:input|select|textarea|button)$/i,vt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),xt=function(t,e,n){var r="0x"+e-65536;return r!==r||n?e:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},wt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,_t=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},Ct=function(){N()},kt=p(function(t){return t.disabled===!0},{dir:"parentNode",next:"legend"});try{Q.apply(Z=K.call(H.childNodes),H.childNodes),Z[H.childNodes.length].nodeType}catch(Tt){Q={apply:Z.length?function(t,e){Y.apply(t,K.call(e))}:function(t,e){for(var n=t.length,r=0;t[n++]=e[r++];);t.length=n-1}}}_=e.support={},T=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},N=e.setDocument=function(t){var e,n,r=t?t.ownerDocument||t:H;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,M=D.documentElement,P=!T(D),H!==D&&(n=D.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ct,!1):n.attachEvent&&n.attachEvent("onunload",Ct)),_.attributes=i(function(t){return t.className="i",!t.getAttribute("className")}),_.getElementsByTagName=i(function(t){return t.appendChild(D.createComment("")),!t.getElementsByTagName("*").length}),_.getElementsByClassName=gt.test(D.getElementsByClassName),_.getById=i(function(t){return M.appendChild(t).id=I,!D.getElementsByName||!D.getElementsByName(I).length}),_.getById?(C.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&P){var n=e.getElementById(t);return n?[n]:[]}},C.filter.ID=function(t){var e=t.replace(bt,xt);return function(t){return t.getAttribute("id")===e}}):(delete C.find.ID,C.filter.ID=function(t){var e=t.replace(bt,xt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),C.find.TAG=_.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):_.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,r=[],i=0,o=e.getElementsByTagName(t);if("*"===t){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},C.find.CLASS=_.getElementsByClassName&&function(t,e){if("undefined"!=typeof e.getElementsByClassName&&P)return e.getElementsByClassName(t)},B=[],F=[],(_.qsa=gt.test(D.querySelectorAll))&&(i(function(t){M.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||F.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+I+"-]").length||F.push("~="),t.querySelectorAll(":checked").length||F.push(":checked"),t.querySelectorAll("a#"+I+"+*").length||F.push(".#.+[+~]")}),i(function(t){t.innerHTML="";var e=D.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&F.push("name"+nt+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&F.push(":enabled",":disabled"),M.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&F.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),F.push(",.*:")})),(_.matchesSelector=gt.test(L=M.matches||M.webkitMatchesSelector||M.mozMatchesSelector||M.oMatchesSelector||M.msMatchesSelector))&&i(function(t){_.disconnectedMatch=L.call(t,"*"),L.call(t,"[s!='']:x"),B.push("!=",ot)}),F=F.length&&new RegExp(F.join("|")),B=B.length&&new RegExp(B.join("|")),e=gt.test(M.compareDocumentPosition),R=e||gt.test(M.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},X=e?function(t,e){if(t===e)return O=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!_.sortDetached&&e.compareDocumentPosition(t)===n?t===D||t.ownerDocument===H&&R(H,t)?-1:e===D||e.ownerDocument===H&&R(H,e)?1:j?tt(j,t)-tt(j,e):0:4&n?-1:1)}:function(t,e){if(t===e)return O=!0,0;var n,r=0,i=t.parentNode,o=e.parentNode,s=[t],u=[e];if(!i||!o)return t===D?-1:e===D?1:i?-1:o?1:j?tt(j,t)-tt(j,e):0;if(i===o)return a(t,e);for(n=t;n=n.parentNode;)s.unshift(n);for(n=e;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===H?-1:u[r]===H?1:0},D):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&N(t),n=n.replace(lt,"='$1']"),_.matchesSelector&&P&&!W[n+" "]&&(!B||!B.test(n))&&(!F||!F.test(n)))try{var r=L.call(t,n);if(r||_.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==D&&N(t),R(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==D&&N(t);var n=C.attrHandle[e.toLowerCase()],r=n&&G.call(C.attrHandle,e.toLowerCase())?n(t,e,!P):void 0;return void 0!==r?r:_.attributes||!P?t.getAttribute(e):(r=t.getAttributeNode(e))&&r.specified?r.value:null},e.escape=function(t){return(t+"").replace(wt,_t)},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],r=0,i=0;if(O=!_.detectDuplicates,j=!_.sortStable&&t.slice(0),t.sort(X),O){for(;e=t[i++];)e===t[i]&&(r=n.push(i));for(;r--;)t.splice(n[r],1)}return j=null,t},k=e.getText=function(t){var e,n="",r=0,i=t.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=k(t)}else if(3===i||4===i)return t.nodeValue}else for(;e=t[r++];)n+=k(e);return n},C=e.selectors={cacheLength:50,createPseudo:r,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(bt,xt),t[3]=(t[3]||t[4]||t[5]||"").replace(bt,xt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&ft.test(n)&&(e=A(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(bt,xt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=V[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&V(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(at," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(t,e,n,r,i){var o="nth"!==t.slice(0,3),a="last"!==t.slice(-4),s="of-type"===e;return 1===r&&0===i?function(t){return!!t.parentNode}:function(e,n,u){var c,l,f,h,d,p,v=o!==a?"nextSibling":"previousSibling",g=e.parentNode,m=s&&e.nodeName.toLowerCase(),y=!u&&!s,b=!1;if(g){if(o){for(;v;){for(h=e;h=h[v];)if(s?h.nodeName.toLowerCase()===m:1===h.nodeType)return!1;p=v="only"===t&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(h=g,f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),c=l[t]||[],d=c[0]===q&&c[1],b=d&&c[2],h=d&&g.childNodes[d];h=++d&&h&&h[v]||(b=d=0)||p.pop();)if(1===h.nodeType&&++b&&h===e){l[t]=[q,d,b];break}}else if(y&&(h=e,f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),c=l[t]||[],d=c[0]===q&&c[1],b=d),b===!1)for(;(h=++d&&h&&h[v]||(b=d=0)||p.pop())&&((s?h.nodeName.toLowerCase()!==m:1!==h.nodeType)||!++b||(y&&(f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),l[t]=[q,b]),h!==e)););return b-=i,b===r||b%r===0&&b/r>=0}}},PSEUDO:function(t,n){var i,o=C.pseudos[t]||C.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[I]?o(n):o.length>1?(i=[t,t,"",n],C.setFilters.hasOwnProperty(t.toLowerCase())?r(function(t,e){for(var r,i=o(t,n),a=i.length;a--;)r=tt(t,i[a]),t[r]=!(e[r]=i[a])}):function(t){return o(t,0,i)}):o}},pseudos:{not:r(function(t){var e=[],n=[],i=S(t.replace(st,"$1"));return i[I]?r(function(t,e,n,r){for(var o,a=i(t,null,r,[]),s=t.length;s--;)(o=a[s])&&(t[s]=!(e[s]=o))}):function(t,r,o){return e[0]=t,i(e,null,o,n),e[0]=null,!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(t){return t=t.replace(bt,xt),function(e){return(e.textContent||e.innerText||k(e)).indexOf(t)>-1}}),lang:r(function(t){return ht.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(bt,xt).toLowerCase(),function(e){var n;do if(n=P?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===M},focus:function(t){return t===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!C.pseudos.empty(t)},header:function(t){return vt.test(t.nodeName)},input:function(t){return pt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,n){return[n<0?n+e:n]}),even:l(function(t,e){for(var n=0;n=0;)t.push(r);return t}),gt:l(function(t,e,n){for(var r=n<0?n+e:n;++r2&&"ID"===(a=o[0]).type&&_.getById&&9===e.nodeType&&P&&C.relative[o[1].type]){if(e=(C.find.ID(a.matches[0].replace(bt,xt),e)||[])[0],!e)return n;c&&(e=e.parentNode),t=t.slice(o.shift().value.length)}for(i=dt.needsContext.test(t)?0:o.length;i--&&(a=o[i],!C.relative[s=a.type]);)if((u=C.find[s])&&(r=u(a.matches[0].replace(bt,xt),yt.test(o[0].type)&&f(e.parentNode)||e))){if(o.splice(i,1),t=r.length&&d(o),!t)return Q.apply(n,r),n;break}}return(c||S(t,l))(r,e,!P,n,!e||yt.test(t)&&f(e.parentNode)||e),n},_.sortStable=I.split("").sort(X).join("")===I,_.detectDuplicates=!!O,N(),_.sortDetached=i(function(t){return 1&t.compareDocumentPosition(D.createElement("fieldset"))}),i(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||o("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),_.attributes&&i(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||o("value",function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),i(function(t){return null==t.getAttribute("disabled")})||o(et,function(t,e,n){var r;if(!n)return t[e]===!0?e.toLowerCase():(r=t.getAttributeNode(e))&&r.specified?r.value:null}),e}(o);mt.find=_t,mt.expr=_t.selectors,mt.expr[":"]=mt.expr.pseudos,mt.uniqueSort=mt.unique=_t.uniqueSort,mt.text=_t.getText,mt.isXMLDoc=_t.isXML,mt.contains=_t.contains,mt.escapeSelector=_t.escape;var Ct=function(t,e,n){for(var r=[],i=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&mt(t).is(n))break;r.push(t)}return r},kt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},Tt=mt.expr.match.needsContext,At=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,St=/^.[^:#\[\.,]*$/;mt.filter=function(t,e,n){var r=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===r.nodeType?mt.find.matchesSelector(r,t)?[r]:[]:mt.find.matches(t,mt.grep(e,function(t){return 1===t.nodeType}))},mt.fn.extend({find:function(t){var e,n,r=this.length,i=this;if("string"!=typeof t)return this.pushStack(mt(t).filter(function(){for(e=0;e1?mt.uniqueSort(n):n},filter:function(t){return this.pushStack(c(this,t||[],!1))},not:function(t){return this.pushStack(c(this,t||[],!0))},is:function(t){return!!c(this,"string"==typeof t&&Tt.test(t)?mt(t):t||[],!1).length}});var $t,Et=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,jt=mt.fn.init=function(t,e,n){var r,i;if(!t)return this;if(n=n||$t,"string"==typeof t){if(r="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:Et.exec(t),!r||!r[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(r[1]){if(e=e instanceof mt?e[0]:e,mt.merge(this,mt.parseHTML(r[1],e&&e.nodeType?e.ownerDocument||e:it,!0)),At.test(r[1])&&mt.isPlainObject(e))for(r in e)mt.isFunction(this[r])?this[r](e[r]):this.attr(r,e[r]);return this}return i=it.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):mt.isFunction(t)?void 0!==n.ready?n.ready(t):t(mt):mt.makeArray(t,this)};jt.prototype=mt.fn,$t=mt(it);var Ot=/^(?:parents|prev(?:Until|All))/,Nt={children:!0,contents:!0,next:!0,prev:!0};mt.fn.extend({has:function(t){var e=mt(t,this),n=e.length;return this.filter(function(){for(var t=0;t-1:1===n.nodeType&&mt.find.matchesSelector(n,t))){o.push(n);break}return this.pushStack(o.length>1?mt.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?ct.call(mt(t),this[0]):ct.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(mt.uniqueSort(mt.merge(this.get(),mt(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),mt.each({parent:function tn(t){var tn=t.parentNode;return tn&&11!==tn.nodeType?tn:null},parents:function(t){return Ct(t,"parentNode")},parentsUntil:function(t,e,n){return Ct(t,"parentNode",n)},next:function(t){return l(t,"nextSibling")},prev:function(t){return l(t,"previousSibling")},nextAll:function(t){return Ct(t,"nextSibling")},prevAll:function(t){return Ct(t,"previousSibling")},nextUntil:function(t,e,n){return Ct(t,"nextSibling",n)},prevUntil:function(t,e,n){return Ct(t,"previousSibling",n)},siblings:function(t){return kt((t.parentNode||{}).firstChild,t)},children:function(t){return kt(t.firstChild)},contents:function(t){return t.contentDocument||mt.merge([],t.childNodes)}},function(t,e){mt.fn[t]=function(n,r){var i=mt.map(this,e,n);return"Until"!==t.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=mt.filter(r,i)),this.length>1&&(Nt[t]||mt.uniqueSort(i),Ot.test(t)&&i.reverse()),this.pushStack(i)}});var Dt=/\S+/g;mt.Callbacks=function(t){t="string"==typeof t?f(t):mt.extend({},t);var e,n,r,i,o=[],a=[],s=-1,u=function(){for(i=t.once,r=e=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--}),this},has:function(t){return t?mt.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||e||(o=n=""),this},locked:function(){return!!i},fireWith:function(t,n){return i||(n=n||[],n=[t,n.slice?n.slice():n],a.push(n),e||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},mt.extend({Deferred:function(t){var e=[["notify","progress",mt.Callbacks("memory"),mt.Callbacks("memory"),2],["resolve","done",mt.Callbacks("once memory"),mt.Callbacks("once memory"),0,"resolved"],["reject","fail",mt.Callbacks("once memory"),mt.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},"catch":function(t){return i.then(null,t)},pipe:function(){var t=arguments;return mt.Deferred(function(n){mt.each(e,function(e,r){var i=mt.isFunction(t[r[4]])&&t[r[4]];a[r[1]](function(){var t=i&&i.apply(this,arguments);t&&mt.isFunction(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[t]:arguments)})}),t=null}).promise()},then:function(t,r,i){function a(t,e,r,i){return function(){var u=this,c=arguments,l=function(){var o,l;if(!(t=s&&(r!==d&&(u=void 0,c=[n]),e.rejectWith(u,c))}};t?f():(mt.Deferred.getStackHook&&(f.stackTrace=mt.Deferred.getStackHook()),o.setTimeout(f))}}var s=0;return mt.Deferred(function(n){e[0][3].add(a(0,n,mt.isFunction(i)?i:h,n.notifyWith)),e[1][3].add(a(0,n,mt.isFunction(t)?t:h)),e[2][3].add(a(0,n,mt.isFunction(r)?r:d))}).promise()},promise:function(t){return null!=t?mt.extend(t,i):i}},a={};return mt.each(e,function(t,n){var o=n[2],s=n[5];i[n[1]]=o.add,s&&o.add(function(){r=s},e[3-t][2].disable,e[0][2].lock),o.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=o.fireWith}),i.promise(a),t&&t.call(a,a),a},when:function(t){var e=arguments.length,n=e,r=Array(n),i=at.call(arguments),o=mt.Deferred(),a=function(t){return function(n){r[t]=this,i[t]=arguments.length>1?at.call(arguments):n,--e||o.resolveWith(r,i)}};if(e<=1&&(p(t,o.done(a(n)).resolve,o.reject),"pending"===o.state()||mt.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)p(i[n],a(n),o.reject);return o.promise()}});var Mt=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;mt.Deferred.exceptionHook=function(t,e){o.console&&o.console.warn&&t&&Mt.test(t.name)&&o.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)};var Pt=mt.Deferred();mt.fn.ready=function(t){return Pt.then(t),this},mt.extend({isReady:!1,readyWait:1,holdReady:function(t){t?mt.readyWait++:mt.ready(!0)},ready:function(t){(t===!0?--mt.readyWait:mt.isReady)||(mt.isReady=!0,t!==!0&&--mt.readyWait>0||Pt.resolveWith(it,[mt]))}}),mt.ready.then=Pt.then,"complete"===it.readyState||"loading"!==it.readyState&&!it.documentElement.doScroll?o.setTimeout(mt.ready):(it.addEventListener("DOMContentLoaded",v),o.addEventListener("load",v));var Ft=function en(t,e,n,r,i,o,a){var s=0,u=t.length,c=null==n;if("object"===mt.type(n)){i=!0;for(s in n)en(t,e,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,mt.isFunction(r)||(a=!0),c&&(a?(e.call(t,r),e=null):(c=e,e=function(t,e,n){return c.call(mt(t),n)})),e))for(;s1,null,!0)},removeData:function(t){return this.each(function(){Rt.remove(this,t)})}}),mt.extend({queue:function rn(t,e,n){var rn;if(t)return e=(e||"fx")+"queue",rn=Lt.get(t,e),n&&(!rn||mt.isArray(n)?rn=Lt.access(t,e,mt.makeArray(n)):rn.push(n)),rn||[]},dequeue:function(t,e){e=e||"fx";var n=mt.queue(t,e),r=n.length,i=n.shift(),o=mt._queueHooks(t,e),a=function(){mt.dequeue(t,e)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===e&&n.unshift("inprogress"),delete o.stop,i.call(t,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Lt.get(t,n)||Lt.access(t,n,{empty:mt.Callbacks("once memory").add(function(){Lt.remove(t,[e+"queue",n])})})}}),mt.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Jt=/^$|\/(?:java|ecma)script/i,Yt={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Yt.optgroup=Yt.option,Yt.tbody=Yt.tfoot=Yt.colgroup=Yt.caption=Yt.thead,Yt.th=Yt.td;var Qt=/<|&#?\w+;/;!function(){var t=it.createDocumentFragment(),e=t.appendChild(it.createElement("div")),n=it.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),vt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",vt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue; -}();var Kt=it.documentElement,te=/^key/,ee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ne=/^([^.]*)(?:\.(.+)|)/;mt.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,c,l,f,h,d,p,v,g=Lt.get(t);if(g)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&mt.find.matchesSelector(Kt,i),n.guid||(n.guid=mt.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(e){return"undefined"!=typeof mt&&mt.event.triggered!==e.type?mt.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(Dt)||[""],c=e.length;c--;)s=ne.exec(e[c])||[],d=v=s[1],p=(s[2]||"").split(".").sort(),d&&(f=mt.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=mt.event.special[d]||{},l=mt.extend({type:d,origType:v,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&mt.expr.match.needsContext.test(i),namespace:p.join(".")},o),(h=u[d])||(h=u[d]=[],h.delegateCount=0,f.setup&&f.setup.call(t,r,p,a)!==!1||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,l):h.push(l),mt.event.global[d]=!0)},remove:function(t,e,n,r,i){var o,a,s,u,c,l,f,h,d,p,v,g=Lt.hasData(t)&&Lt.get(t);if(g&&(u=g.events)){for(e=(e||"").match(Dt)||[""],c=e.length;c--;)if(s=ne.exec(e[c])||[],d=v=s[1],p=(s[2]||"").split(".").sort(),d){for(f=mt.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,h=u[d]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=h.length;o--;)l=h[o],!i&&v!==l.origType||n&&n.guid!==l.guid||s&&!s.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(h.splice(o,1),l.selector&&h.delegateCount--,f.remove&&f.remove.call(t,l));a&&!h.length&&(f.teardown&&f.teardown.call(t,p,g.handle)!==!1||mt.removeEvent(t,d,g.handle),delete u[d])}else for(d in u)mt.event.remove(t,d+e[c],n,r,!0);mt.isEmptyObject(u)&&Lt.remove(t,"handle events")}},dispatch:function(t){var e,n,r,i,o,a,s=mt.event.fix(t),u=new Array(arguments.length),c=(Lt.get(this,"events")||{})[s.type]||[],l=mt.event.special[s.type]||{};for(u[0]=s,e=1;e-1:mt.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s\x20\t\r\n\f]*)[^>]*)\/>/gi,ie=/\s*$/g;mt.extend({htmlPrefilter:function(t){return t.replace(re,"<$1>")},clone:function on(t,e,n){var r,i,o,a,on=t.cloneNode(!0),s=mt.contains(t.ownerDocument,t);if(!(vt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||mt.isXMLDoc(t)))for(a=w(on),o=w(t),r=0,i=o.length;r0&&_(a,!s&&w(t,"script")),on},cleanData:function(t){for(var e,n,r,i=mt.event.special,o=0;void 0!==(n=t[o]);o++)if(Bt(n)){if(e=n[Lt.expando]){if(e.events)for(r in e.events)i[r]?mt.event.remove(n,r):mt.removeEvent(n,r,e.handle);n[Lt.expando]=void 0}n[Rt.expando]&&(n[Rt.expando]=void 0)}}}),mt.fn.extend({detach:function(t){return M(this,t,!0)},remove:function(t){return M(this,t)},text:function(t){return Ft(this,function(t){return void 0===t?mt.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return D(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=$(this,t);e.appendChild(t)}})},prepend:function(){return D(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=$(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return D(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return D(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(mt.cleanData(w(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return mt.clone(this,t,e)})},html:function(t){return Ft(this,function(t){var e=this[0]||{},n=0,r=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!ie.test(t)&&!Yt[(Zt.exec(t)||["",""])[1].toLowerCase()]){t=mt.htmlPrefilter(t);try{for(;n1)}}),mt.Tween=H,H.prototype={constructor:H,init:function(t,e,n,r,i,o){this.elem=t,this.prop=n,this.easing=i||mt.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=o||(mt.cssNumber[n]?"":"px")},cur:function(){var t=H.propHooks[this.prop];return t&&t.get?t.get(this):H.propHooks._default.get(this)},run:function(t){var e,n=H.propHooks[this.prop];return this.options.duration?this.pos=e=mt.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):H.propHooks._default.set(this),this}},H.prototype.init.prototype=H.prototype,H.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=mt.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){mt.fx.step[t.prop]?mt.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[mt.cssProps[t.prop]]&&!mt.cssHooks[t.prop]?t.elem[t.prop]=t.now:mt.style(t.elem,t.prop,t.now+t.unit)}}},H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},mt.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},mt.fx=H.prototype.init,mt.fx.step={};var ge,me,ye=/^(?:toggle|show|hide)$/,be=/queueHooks$/;mt.Animation=mt.extend(G,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return y(n.elem,t,zt.exec(e),n),n}]},tweener:function(t,e){mt.isFunction(t)?(e=t,t=["*"]):t=t.match(Dt);for(var n,r=0,i=t.length;r1)},removeAttr:function(t){return this.each(function(){mt.removeAttr(this,t)})}}),mt.extend({attr:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof t.getAttribute?mt.prop(t,e,n):(1===o&&mt.isXMLDoc(t)||(i=mt.attrHooks[e.toLowerCase()]||(mt.expr.match.bool.test(e)?xe:void 0)),void 0!==n?null===n?void mt.removeAttr(t,e):i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):i&&"get"in i&&null!==(r=i.get(t,e))?r:(r=mt.find.attr(t,e),null==r?void 0:r))},attrHooks:{type:{set:function(t,e){if(!vt.radioValue&&"radio"===e&&mt.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,r=0,i=e&&e.match(Dt);if(i&&1===t.nodeType)for(;n=i[r++];)t.removeAttribute(n)}}),xe={set:function(t,e,n){return e===!1?mt.removeAttr(t,n):t.setAttribute(n,n),n}},mt.each(mt.expr.match.bool.source.match(/\w+/g),function(t,e){var n=we[e]||mt.find.attr;we[e]=function(t,e,r){var i,o,a=e.toLowerCase();return r||(o=we[a],we[a]=i,i=null!=n(t,e,r)?a:null,we[a]=o),i}});var _e=/^(?:input|select|textarea|button)$/i,Ce=/^(?:a|area)$/i;mt.fn.extend({prop:function(t,e){return Ft(this,mt.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[mt.propFix[t]||t]})}}),mt.extend({prop:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&mt.isXMLDoc(t)||(e=mt.propFix[e]||e,i=mt.propHooks[e]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:t[e]=n:i&&"get"in i&&null!==(r=i.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){var e=mt.find.attr(t,"tabindex");return e?parseInt(e,10):_e.test(t.nodeName)||Ce.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),vt.optSelected||(mt.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),mt.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){mt.propFix[this.toLowerCase()]=this});var ke=/[\t\r\n\f]/g;mt.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(mt.isFunction(t))return this.each(function(e){mt(this).addClass(t.call(this,e,Z(this)))});if("string"==typeof t&&t)for(e=t.match(Dt)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&(" "+i+" ").replace(ke," ")){for(a=0;o=e[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=mt.trim(r),i!==s&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(mt.isFunction(t))return this.each(function(e){mt(this).removeClass(t.call(this,e,Z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(Dt)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&(" "+i+" ").replace(ke," ")){for(a=0;o=e[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=mt.trim(r),i!==s&&n.setAttribute("class",s)}return this},toggleClass:function(t,e){var r="undefined"==typeof t?"undefined":n(t);return"boolean"==typeof e&&"string"===r?e?this.addClass(t):this.removeClass(t):mt.isFunction(t)?this.each(function(n){mt(this).toggleClass(t.call(this,n,Z(this),e),e)}):this.each(function(){var e,n,i,o;if("string"===r)for(n=0,i=mt(this),o=t.match(Dt)||[];e=o[n++];)i.hasClass(e)?i.removeClass(e):i.addClass(e);else void 0!==t&&"boolean"!==r||(e=Z(this),e&&Lt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":Lt.get(this,"__className__")||""))})},hasClass:function(t){var e,n,r=0;for(e=" "+t+" ";n=this[r++];)if(1===n.nodeType&&(" "+Z(n)+" ").replace(ke," ").indexOf(e)>-1)return!0;return!1}});var Te=/\r/g,Ae=/[\x20\t\r\n\f]+/g;mt.fn.extend({val:function(t){var e,n,r,i=this[0];{if(arguments.length)return r=mt.isFunction(t),this.each(function(n){var i;1===this.nodeType&&(i=r?t.call(this,n,mt(this).val()):t,null==i?i="":"number"==typeof i?i+="":mt.isArray(i)&&(i=mt.map(i,function(t){return null==t?"":t+""})),e=mt.valHooks[this.type]||mt.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))});if(i)return e=mt.valHooks[i.type]||mt.valHooks[i.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Te,""):null==n?"":n)}}}),mt.extend({valHooks:{option:{get:function(t){var e=mt.find.attr(t,"value");return null!=e?e:mt.trim(mt.text(t)).replace(Ae," ")}},select:{get:function(t){for(var e,n,r=t.options,i=t.selectedIndex,o="select-one"===t.type,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)&&(n=!0);return n||(t.selectedIndex=-1),o}}}}),mt.each(["radio","checkbox"],function(){mt.valHooks[this]={set:function(t,e){if(mt.isArray(e))return t.checked=mt.inArray(mt(t).val(),e)>-1}},vt.checkOn||(mt.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var Se=/^(?:focusinfocus|focusoutblur)$/;mt.extend(mt.event,{trigger:function(t,e,r,i){var a,s,u,c,l,f,h,d=[r||it],p=ht.call(t,"type")?t.type:t,v=ht.call(t,"namespace")?t.namespace.split("."):[];if(s=u=r=r||it,3!==r.nodeType&&8!==r.nodeType&&!Se.test(p+mt.event.triggered)&&(p.indexOf(".")>-1&&(v=p.split("."),p=v.shift(),v.sort()),l=p.indexOf(":")<0&&"on"+p,t=t[mt.expando]?t:new mt.Event(p,"object"===("undefined"==typeof t?"undefined":n(t))&&t),t.isTrigger=i?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),e=null==e?[t]:mt.makeArray(e,[t]),h=mt.event.special[p]||{},i||!h.trigger||h.trigger.apply(r,e)!==!1)){if(!i&&!h.noBubble&&!mt.isWindow(r)){for(c=h.delegateType||p,Se.test(c+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(r.ownerDocument||it)&&d.push(u.defaultView||u.parentWindow||o)}for(a=0;(s=d[a++])&&!t.isPropagationStopped();)t.type=a>1?c:h.bindType||p,f=(Lt.get(s,"events")||{})[t.type]&&Lt.get(s,"handle"),f&&f.apply(s,e),f=l&&s[l],f&&f.apply&&Bt(s)&&(t.result=f.apply(s,e),t.result===!1&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||h._default&&h._default.apply(d.pop(),e)!==!1||!Bt(r)||l&&mt.isFunction(r[p])&&!mt.isWindow(r)&&(u=r[l],u&&(r[l]=null),mt.event.triggered=p,r[p](),mt.event.triggered=void 0,u&&(r[l]=u)),t.result}},simulate:function(t,e,n){var r=mt.extend(new mt.Event,n,{type:t,isSimulated:!0});mt.event.trigger(r,null,e)}}),mt.fn.extend({trigger:function(t,e){return this.each(function(){mt.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];if(n)return mt.event.trigger(t,e,n,!0)}}),mt.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(t,e){mt.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),mt.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),vt.focusin="onfocusin"in o,vt.focusin||mt.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){mt.event.simulate(e,t.target,mt.event.fix(t))};mt.event.special[e]={setup:function(){var r=this.ownerDocument||this,i=Lt.access(r,e);i||r.addEventListener(t,n,!0),Lt.access(r,e,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Lt.access(r,e)-1;i?Lt.access(r,e,i):(r.removeEventListener(t,n,!0),Lt.remove(r,e))}}});var $e=o.location,Ee=mt.now(),je=/\?/;mt.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new o.DOMParser).parseFromString(t,"text/xml")}catch(n){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||mt.error("Invalid XML: "+t),e};var Oe=/\[\]$/,Ne=/\r?\n/g,De=/^(?:submit|button|image|reset|file)$/i,Me=/^(?:input|select|textarea|keygen)/i;mt.param=function(t,e){var n,r=[],i=function(t,e){var n=mt.isFunction(e)?e():e;r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(mt.isArray(t)||t.jquery&&!mt.isPlainObject(t))mt.each(t,function(){i(this.name,this.value)});else for(n in t)J(n,t[n],e,i);return r.join("&")},mt.fn.extend({serialize:function(){return mt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=mt.prop(this,"elements");return t?mt.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!mt(this).is(":disabled")&&Me.test(this.nodeName)&&!De.test(t)&&(this.checked||!Gt.test(t))}).map(function(t,e){var n=mt(this).val();return null==n?null:mt.isArray(n)?mt.map(n,function(t){return{name:e.name,value:t.replace(Ne,"\r\n")}}):{name:e.name,value:n.replace(Ne,"\r\n")}}).get()}});var Pe=/%20/g,Fe=/#.*$/,Be=/([?&])_=[^&]*/,Le=/^(.*?):[ \t]*([^\r\n]*)$/gm,Re=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ie=/^(?:GET|HEAD)$/,He=/^\/\//,qe={},ze={},Ve="*/".concat("*"),Ue=it.createElement("a");Ue.href=$e.href,mt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:$e.href,type:"GET",isLocal:Re.test($e.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ve,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":mt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?K(K(t,mt.ajaxSettings),e):K(mt.ajaxSettings,t)},ajaxPrefilter:Y(qe),ajaxTransport:Y(ze),ajax:function(t,e){function r(t,e,n,r){var u,l,d,p,w,_=e;f||(f=!0,c&&o.clearTimeout(c),i=void 0,s=r||"",k.readyState=t>0?4:0,u=t>=200&&t<300||304===t,n&&(p=tt(v,k,n)),p=et(v,p,k,u),u?(v.ifModified&&(w=k.getResponseHeader("Last-Modified"),w&&(mt.lastModified[a]=w),w=k.getResponseHeader("etag"),w&&(mt.etag[a]=w)),204===t||"HEAD"===v.type?_="nocontent":304===t?_="notmodified":(_=p.state,l=p.data,d=p.error,u=!d)):(d=_,!t&&_||(_="error",t<0&&(t=0))),k.status=t,k.statusText=(e||_)+"",u?y.resolveWith(g,[l,_,k]):y.rejectWith(g,[k,_,d]),k.statusCode(x),x=void 0,h&&m.trigger(u?"ajaxSuccess":"ajaxError",[k,v,u?l:d]),b.fireWith(g,[k,_]),h&&(m.trigger("ajaxComplete",[k,v]),--mt.active||mt.event.trigger("ajaxStop")))}"object"===("undefined"==typeof t?"undefined":n(t))&&(e=t,t=void 0),e=e||{};var i,a,s,u,c,l,f,h,d,p,v=mt.ajaxSetup({},e),g=v.context||v,m=v.context&&(g.nodeType||g.jquery)?mt(g):mt.event,y=mt.Deferred(),b=mt.Callbacks("once memory"),x=v.statusCode||{},w={},_={},C="canceled",k={readyState:0,getResponseHeader:function(t){var e;if(f){if(!u)for(u={};e=Le.exec(s);)u[e[1].toLowerCase()]=e[2];e=u[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return f?s:null},setRequestHeader:function(t,e){return null==f&&(t=_[t.toLowerCase()]=_[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==f&&(v.mimeType=t),this},statusCode:function(t){var e;if(t)if(f)k.always(t[k.status]);else for(e in t)x[e]=[x[e],t[e]];return this},abort:function(t){var e=t||C;return i&&i.abort(e),r(0,e),this}};if(y.promise(k),v.url=((t||v.url||$e.href)+"").replace(He,$e.protocol+"//"),v.type=e.method||e.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(Dt)||[""],null==v.crossDomain){l=it.createElement("a");try{l.href=v.url,l.href=l.href,v.crossDomain=Ue.protocol+"//"+Ue.host!=l.protocol+"//"+l.host}catch(T){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=mt.param(v.data,v.traditional)),Q(qe,v,e,k),f)return k;h=mt.event&&v.global,h&&0===mt.active++&&mt.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ie.test(v.type),a=v.url.replace(Fe,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Pe,"+")):(p=v.url.slice(a.length),v.data&&(a+=(je.test(a)?"&":"?")+v.data,delete v.data),v.cache===!1&&(a=a.replace(Be,""),p=(je.test(a)?"&":"?")+"_="+Ee++ +p),v.url=a+p),v.ifModified&&(mt.lastModified[a]&&k.setRequestHeader("If-Modified-Since",mt.lastModified[a]),mt.etag[a]&&k.setRequestHeader("If-None-Match",mt.etag[a])),(v.data&&v.hasContent&&v.contentType!==!1||e.contentType)&&k.setRequestHeader("Content-Type",v.contentType),k.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Ve+"; q=0.01":""):v.accepts["*"]);for(d in v.headers)k.setRequestHeader(d,v.headers[d]);if(v.beforeSend&&(v.beforeSend.call(g,k,v)===!1||f))return k.abort();if(C="abort",b.add(v.complete),k.done(v.success),k.fail(v.error),i=Q(ze,v,e,k)){if(k.readyState=1,h&&m.trigger("ajaxSend",[k,v]),f)return k;v.async&&v.timeout>0&&(c=o.setTimeout(function(){k.abort("timeout")},v.timeout));try{f=!1,i.send(w,r)}catch(T){if(f)throw T;r(-1,T)}}else r(-1,"No Transport");return k},getJSON:function(t,e,n){return mt.get(t,e,n,"json")},getScript:function(t,e){return mt.get(t,void 0,e,"script")}}),mt.each(["get","post"],function(t,e){mt[e]=function(t,n,r,i){return mt.isFunction(n)&&(i=i||r,r=n,n=void 0),mt.ajax(mt.extend({url:t,type:e,dataType:i,data:n,success:r},mt.isPlainObject(t)&&t))}}),mt._evalUrl=function(t){return mt.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},mt.fn.extend({wrapAll:function(t){var e;return this[0]&&(mt.isFunction(t)&&(t=t.call(this[0])),e=mt(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return mt.isFunction(t)?this.each(function(e){mt(this).wrapInner(t.call(this,e))}):this.each(function(){var e=mt(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=mt.isFunction(t);return this.each(function(n){mt(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){mt(this).replaceWith(this.childNodes); -}),this}}),mt.expr.pseudos.hidden=function(t){return!mt.expr.pseudos.visible(t)},mt.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},mt.ajaxSettings.xhr=function(){try{return new o.XMLHttpRequest}catch(t){}};var We={0:200,1223:204},Xe=mt.ajaxSettings.xhr();vt.cors=!!Xe&&"withCredentials"in Xe,vt.ajax=Xe=!!Xe,mt.ajaxTransport(function(t){var e,n;if(vt.cors||Xe&&!t.crossDomain)return{send:function(r,i){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)s.setRequestHeader(a,r[a]);e=function(t){return function(){e&&(e=n=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===t?s.abort():"error"===t?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(We[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=e(),n=s.onerror=e("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&o.setTimeout(function(){e&&n()})},e=e("abort");try{s.send(t.hasContent&&t.data||null)}catch(u){if(e)throw u}},abort:function(){e&&e()}}}),mt.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),mt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return mt.globalEval(t),t}}}),mt.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),mt.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(r,i){e=mt(" + {% if IS_DEV_MODE %} + + {% else %} + + {% endif %} + {% endblock %} {% block page_js %} {% endblock %} diff -r c35816b65834 -r 797460904f77 src/iconolab/templates/search/annotation_search.html --- a/src/iconolab/templates/search/annotation_search.html Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/templates/search/annotation_search.html Tue Aug 23 18:01:08 2016 +0200 @@ -39,7 +39,7 @@ {% endthumbnail %}

- {{ result.object.current_revision.title }} + {{ result.object.current_revision.title }}

diff -r c35816b65834 -r 797460904f77 src/iconolab/templates/search/indexes/iconolab/annotation_text.txt --- a/src/iconolab/templates/search/indexes/iconolab/annotation_text.txt Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/templates/search/indexes/iconolab/annotation_text.txt Tue Aug 23 18:01:08 2016 +0200 @@ -2,4 +2,4 @@ {{ object.current_revision.description }} -{{ object.tags }} +{{ object.tag_labels }} diff -r c35816b65834 -r 797460904f77 src/iconolab/templates/search/indexes/iconolab/image_text.txt --- a/src/iconolab/templates/search/indexes/iconolab/image_text.txt Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/templates/search/indexes/iconolab/image_text.txt Tue Aug 23 18:01:08 2016 +0200 @@ -9,4 +9,4 @@ {{ object.item.metadatas.discovery_context }} {{ object.item.metadatas.conservation_location }} -{{ object.tags }} \ No newline at end of file +{{ object.tag_labels }} \ No newline at end of file diff -r c35816b65834 -r 797460904f77 src/iconolab/urls.py --- a/src/iconolab/urls.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/urls.py Tue Aug 23 18:01:08 2016 +0200 @@ -58,6 +58,7 @@ url(r'collections/(?P[a-z0-9\-]+)/search', IconolabSearchView.as_view(), name="collection_haystack_search"), url(r'^search/$', IconolabSearchView.as_view(), name="haystack_search"), + url(r'^compare/$', views.iconolab.TestView.as_view(), name="compare_view") #url(r'^search/', include('haystack.urls'), name="search_iconolab"), ] diff -r c35816b65834 -r 797460904f77 src/iconolab/utils/context_processors.py --- a/src/iconolab/utils/context_processors.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/utils/context_processors.py Tue Aug 23 18:01:08 2016 +0200 @@ -1,4 +1,8 @@ from django.conf import settings -def notifications(request): - return {'notification_nb': '3'} \ No newline at end of file +def env(request): + try: + dev_mode = settings.DEV_MODE + except AttributeError: + dev_mode = False + return {'IS_DEV_MODE': dev_mode} \ No newline at end of file diff -r c35816b65834 -r 797460904f77 src/iconolab/views/iconolab.py --- a/src/iconolab/views/iconolab.py Mon Aug 22 12:46:43 2016 +0200 +++ b/src/iconolab/views/iconolab.py Tue Aug 23 18:01:08 2016 +0200 @@ -24,6 +24,13 @@ context['collections'] = Collection.objects return render(request, 'iconolab/home.html', context) +class TestView(View): + template_name = "iconolab/compare.html" + + def get(self, request, *args, **kwargs): + return render(request, self.template_name) + + class UserHomeView(DetailView): model = User @@ -148,7 +155,6 @@ ).order_by("comment__submit_date").values_list("comment__object_pk", flat=True))) collection_annotations = Annotation.objects.filter(id__in=contrib_calls_annotations_ids).all() - logger.debug(collection_annotations) collection_ann_dict = dict([(str(annotation.id), annotation) for annotation in collection_annotations]) context["contribution_calls_annotations_list"] = [collection_ann_dict[id] for id in contrib_calls_annotations_ids] diff -r c35816b65834 -r 797460904f77 src_js/iconolab-bundle/dist/build.js --- a/src_js/iconolab-bundle/dist/build.js Mon Aug 22 12:46:43 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="/dist/",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}n(38),n(39),n(37);var i=n(28),o=(r(i),n(2)),a=r(o),s=n(33),u=r(s),c=n(6),l=r(c),f=n(41),h=r(f),d={Cutout:u["default"],VueComponents:{Typeahead:a["default"],MergeTool:h["default"],Zoomview:l["default"]}};window.iconolab||(window.iconolab=d)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.eventEmitter=e.generateId=void 0;var i=n(27),o=r(i),a=(0,o["default"])({}),s=function(){var t=0,e="item_";return function(n){return n="string"==typeof n?n:e,t+=1,n+t}}();e.generateId=s,e.eventEmitter=a},function(t,e,n){var r,i;n(47),r=n(10);var o=n(43);i=r||{},i.__esModule&&(i=i["default"]),"function"==typeof i&&(i=i.options),i.render=o.render,i.staticRenderFns=o.staticRenderFns,i._scopeId="data-v-1",t.exports=r||i},function(t,e,n){var r,i,r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};(function(){t.exports=0;!function(n){var o,a,s="0.4.2",u="hasOwnProperty",c=/[\.\/]/,l=/\s*,\s*/,f="*",h=function(t,e){return t-e},d={n:{}},p=function(){for(var t=0,e=this.length;t1)for(var r=0,i=n.length;r=1&&(delete n[i],o.s=1,t--,function(t){setTimeout(function(){e("mina.finish."+t.id,t)})}(o)),o.update()}t&&r(y)},m=function b(t,e,i,o,a,u,m){var y={id:s(),start:t,end:e,b:i,s:0,dur:o-i,spd:1,get:a,set:u,easing:m||b.linear,status:c,speed:l,duration:f,stop:h,pause:d,resume:p,update:v};n[y.id]=y;var x,w=0;for(x in n)if(n.hasOwnProperty(x)&&(w++,2==w))break;return 1==w&&r(g),y};return m.time=u,m.getById=function(t){return n[t]||null},m.linear=function(t){return t},m.easeout=function(t){return Math.pow(t,1.7)},m.easein=function(t){return Math.pow(t,.48)},m.easeinout=function(t){if(1==t)return 1;if(0==t)return 0;var e=.48-t/1.04,n=Math.sqrt(.1734+e*e),r=n-e,i=Math.pow(Math.abs(r),1/3)*(r<0?-1:1),o=-n-e,a=Math.pow(Math.abs(o),1/3)*(o<0?-1:1),s=i+a+.5;return 3*(1-s)*s*s+s*s*s},m.backin=function(t){if(1==t)return 1;var e=1.70158;return t*t*((e+1)*t-e)},m.backout=function(t){if(0==t)return 0;t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},m.elastic=function(t){return t==!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1},m.bounce=function(t){var e,n=7.5625,r=2.75;return t<1/r?e=n*t*t:t<2/r?(t-=1.5/r,e=n*t*t+.75):t<2.5/r?(t-=2.25/r,e=n*t*t+.9375):(t-=2.625/r,e=n*t*t+.984375),e},t.mina=m,m}("undefined"==typeof e?function(){}:e),r=function(t){function n(t,e){if(t){if(t.nodeType)return C(t);if(i(t,"array")&&n.set)return n.set.apply(n,t);if(t instanceof b)return t;if(null==e)return t=T.doc.querySelector(String(t)),C(t)}return t=null==t?"100%":t,e=null==e?"100%":e,new _(t,e)}function r(t,e){if(e){if("#text"==t&&(t=T.doc.createTextNode(e.text||e["#text"]||"")),"#comment"==t&&(t=T.doc.createComment(e.text||e["#text"]||"")),"string"==typeof t&&(t=r(t)),"string"==typeof e)return 1==t.nodeType?"xlink:"==e.substring(0,6)?t.getAttributeNS(W,e.substring(6)):"xml:"==e.substring(0,4)?t.getAttributeNS(X,e.substring(4)):t.getAttribute(e):"text"==e?t.nodeValue:null;if(1==t.nodeType){for(var n in e)if(e[A](n)){var i=S(e[n]);i?"xlink:"==n.substring(0,6)?t.setAttributeNS(W,n.substring(6),i):"xml:"==n.substring(0,4)?t.setAttributeNS(X,n.substring(4),i):t.setAttribute(n,i):t.removeAttribute(n)}}else"text"in e&&(t.nodeValue=e.text)}else t=T.doc.createElementNS(X,t);return t}function i(t,e){return e=S.prototype.toLowerCase.call(e),"finite"==e?isFinite(t):!("array"!=e||!(t instanceof Array||Array.isArray&&Array.isArray(t)))||("null"==e&&null===t||e==("undefined"==typeof t?"undefined":a(t))&&null!==t||"object"==e&&t===Object(t)||F.call(t).slice(8,-1).toLowerCase()==e)}function o(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var n in t)t[A](n)&&(e[n]=o(t[n]));return e}function s(t,e){for(var n=0,r=t.length;n=1e3&&delete a[u.shift()],u.push(o),a[o]=t.apply(e,i),n?n(a[o]):a[o])}return r}function c(t,e,n,r,i,o){if(null==i){var a=t-n,s=e-r;return a||s?(180+180*j.atan2(-s,-a)/M+360)%360:0}return c(t,e,i,o)-c(n,r,i,o)}function l(t){return t%360*M/180}function f(t){return 180*t/M%360}function h(t){var e=[];return t=t.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(t,n,r){return r=r.split(/\s*,\s*|\s+/),"rotate"==n&&1==r.length&&r.push(0,0),"scale"==n&&(r.length>2?r=r.slice(0,2):2==r.length&&r.push(0,0),1==r.length&&r.push(r[0],0,0)),"skewX"==n?e.push(["m",1,0,j.tan(l(r[0])),1,0,0]):"skewY"==n?e.push(["m",1,j.tan(l(r[0])),0,1,0,0]):e.push([n.charAt(0)].concat(r)),t}),e}function d(t,e){var r=et(t),i=new n.Matrix;if(r)for(var o=0,a=r.length;o.5;){var d,p,v,g,m,y;(v=o-l)>=0&&(m=r(d=u.getPointAtLength(v)))t-n)return e-o+t}return e},n.getRGB=u(function(t){if(!t||(t=S(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:Q};if(!(R[A](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=Z(t)),!t)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q};var e,r,o,a,s,u,c=t.match(B);return c?(c[2]&&(o=E(c[2].substring(5),16),r=E(c[2].substring(3,5),16),e=E(c[2].substring(1,3),16)),c[3]&&(o=E((s=c[3].charAt(3))+s,16),r=E((s=c[3].charAt(2))+s,16),e=E((s=c[3].charAt(1))+s,16)),c[4]&&(u=c[4].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e*=2.55),r=$(u[1]),"%"==u[1].slice(-1)&&(r*=2.55),o=$(u[2]),"%"==u[2].slice(-1)&&(o*=2.55),"rgba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100)),c[5]?(u=c[5].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsba"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsb2rgb(e,r,o,a)):c[6]?(u=c[6].split(L),e=$(u[0]),"%"==u[0].slice(-1)&&(e/=100),r=$(u[1]),"%"==u[1].slice(-1)&&(r/=100),o=$(u[2]),"%"==u[2].slice(-1)&&(o/=100),("deg"==u[0].slice(-3)||"°"==u[0].slice(-1))&&(e/=360),"hsla"==c[1].toLowerCase().slice(0,4)&&(a=$(u[3])),u[3]&&"%"==u[3].slice(-1)&&(a/=100),n.hsl2rgb(e,r,o,a)):(e=N(j.round(e),255),r=N(j.round(r),255),o=N(j.round(o),255),a=N(O(a,0),1),c={r:e,g:r,b:o,toString:Q},c.hex="#"+(16777216|o|r<<8|e<<16).toString(16).slice(1),c.opacity=i(a,"finite")?a:1,c)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Q}},n),n.hsb=u(function(t,e,r){return n.hsb2rgb(t,e,r).hex}),n.hsl=u(function(t,e,r){return n.hsl2rgb(t,e,r).hex}),n.rgb=u(function(t,e,n,r){if(i(r,"finite")){var o=j.round;return"rgba("+[o(t),o(e),o(n),+r.toFixed(2)]+")"}return"#"+(16777216|n|e<<8|t<<16).toString(16).slice(1)});var Z=function(t){var e=T.doc.getElementsByTagName("head")[0]||T.doc.getElementsByTagName("svg")[0],n="rgb(255, 0, 0)";return(Z=u(function(t){if("red"==t.toLowerCase())return n;e.style.color=n,e.style.color=t;var r=T.doc.defaultView.getComputedStyle(e,P).getPropertyValue("color");return r==n?null:r}))(t)},J=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Q=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},K=function(t,e,r){if(null==e&&i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(r=t.b,e=t.g,t=t.r),null==e&&i(t,string)){var o=n.getRGB(t);t=o.r,e=o.g,r=o.b}return(t>1||e>1||r>1)&&(t/=255,e/=255,r/=255),[t,e,r]},tt=function(t,e,r,o){t=j.round(255*t),e=j.round(255*e),r=j.round(255*r);var a={r:t,g:e,b:r,opacity:i(o,"finite")?o:1,hex:n.rgb(t,e,r),toString:Q};return i(o,"finite")&&(a.opacity=o),a};n.color=function(t){var e;return i(t,"object")&&"h"in t&&"s"in t&&"b"in t?(e=n.hsb2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):i(t,"object")&&"h"in t&&"s"in t&&"l"in t?(e=n.hsl2rgb(t),t.r=e.r,t.g=e.g,t.b=e.b,t.opacity=1,t.hex=e.hex):(i(t,"string")&&(t=n.getRGB(t)),i(t,"object")&&"r"in t&&"g"in t&&"b"in t&&!("error"in t)?(e=n.rgb2hsl(t),t.h=e.h,t.s=e.s,t.l=e.l,e=n.rgb2hsb(t),t.v=e.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1,t.error=1)),t.toString=Q,t},n.hsb2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(n=t.b,e=t.s,r=t.o,t=t.h),t*=360;var o,a,s,u,c;return t=t%360/60,c=n*e,u=c*(1-D(t%2-1)),o=a=s=n-c,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.hsl2rgb=function(t,e,n,r){i(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(n=t.l,e=t.s,t=t.h),(t>1||e>1||n>1)&&(t/=360,e/=100,n/=100),t*=360;var o,a,s,u,c;return t=t%360/60,c=2*e*(n<.5?n:1-n),u=c*(1-D(t%2-1)),o=a=s=n-c/2,t=~~t,o+=[c,u,0,0,u,c][t],a+=[u,c,c,u,0,0][t],s+=[0,0,u,c,c,u][t],tt(o,a,s,r)},n.rgb2hsb=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a;return o=O(t,e,n),a=o-N(t,e,n),r=0==a?null:o==t?(e-n)/a:o==e?(n-t)/a+2:(t-e)/a+4,r=(r+360)%6*60/360,i=0==a?0:a/o,{h:r,s:i,b:o,toString:J}},n.rgb2hsl=function(t,e,n){n=K(t,e,n),t=n[0],e=n[1],n=n[2];var r,i,o,a,s,u;return a=O(t,e,n),s=N(t,e,n),u=a-s,r=0==u?null:a==t?(e-n)/u:a==e?(n-t)/u+2:(t-e)/u+4,r=(r+360)%6*60/360,o=(a+s)/2,i=0==u?0:o<.5?u/(2*o):u/(2-2*o),{h:r,s:i,l:o,toString:Y}},n.parsePathString=function(t){if(!t)return null;var e=n.path(t);if(e.arr)return n.path.clone(e.arr);var r={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},o=[];return i(t,"array")&&i(t[0],"array")&&(o=n.path.clone(t)),o.length||S(t).replace(I,function(t,e,n){var i=[],a=e.toLowerCase();if(n.replace(q,function(t,e){e&&i.push(+e)}),"m"==a&&i.length>2&&(o.push([e].concat(i.splice(0,2))),a="l",e="m"==e?"l":"L"),"o"==a&&1==i.length&&o.push([e,i[0]]),"r"==a)o.push([e].concat(i));else for(;i.length>=r[a]&&(o.push([e].concat(i.splice(0,r[a]))),r[a]););}),o.toString=n.path.toString,e.arr=n.path.clone(o),o};var et=n.parseTransformString=function(t){if(!t)return null;var e=[];return i(t,"array")&&i(t[0],"array")&&(e=n.path.clone(t)),e.length||S(t).replace(H,function(t,n,r){var i=[];n.toLowerCase();r.replace(q,function(t,e){e&&i.push(+e)}),e.push([n].concat(i))}),e.toString=n.path.toString,e};n._.svgTransform2string=h,n._.rgTransform=/^[a-z][\s]*-?\.?\d/i,n._.transform2matrix=d,n._unit2px=m;T.doc.contains||T.doc.compareDocumentPosition?function(t,e){var n=9==t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t==r||!(!r||1!=r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e;)if(e=e.parentNode,e==t)return!0;return!1};n._.getSomeDefs=p,n._.getSomeSVG=v,n.select=function(t){return t=S(t).replace(/([^\\]):/g,"$1\\:"),C(T.doc.querySelector(t))},n.selectAll=function(t){for(var e=T.doc.querySelectorAll(t),r=(n.set||Array)(),i=0;i1))return e("snap.util.getattr."+t,r).firstDefined();var l={};l[t]=n,t=l}for(var f in t)t[A](f)&&e("snap.util.attr."+f,r,t[f]);return r},n.parse=function(t){var e=T.doc.createDocumentFragment(),n=!0,r=T.doc.createElement("div");if(t=S(t),t.match(/^\s*<\s*svg(?:\s|>)/)||(t=""+t+"",n=!1),r.innerHTML=t,t=r.getElementsByTagName("svg")[0])if(n)e=t;else for(;t.firstChild;)e.appendChild(t.firstChild);return new x(e)},n.fragment=function(){for(var t=Array.prototype.slice.call(arguments,0),e=T.doc.createDocumentFragment(),r=0,i=t.length;r")}else t&&(e+="/>");return e}}var h=i.prototype,d=r.is,p=String,v=r._unit2px,g=r._.$,m=r._.make,y=r._.getSomeDefs,b="hasOwnProperty",x=r._.wrap;h.getBBox=function(t){if(!r.Matrix||!r.path)return this.node.getBBox();var e=this,n=new r.Matrix;if(e.removed)return r._.box();for(;"use"==e.type;)if(t||(n=n.add(e.transform().localMatrix.translate(e.attr("x")||0,e.attr("y")||0))),e.original)e=e.original;else{var i=e.attr("xlink:href");e=e.original=e.node.ownerDocument.getElementById(i.substring(i.indexOf("#")+1))}var o=e._,a=r.path.get[e.type]||r.path.get.deflt;try{return t?(o.bboxwt=a?r.path.getBBox(e.realPath=a(e)):r._.box(e.node.getBBox()),r._.box(o.bboxwt)):(e.realPath=a(e),e.matrix=e.transform().localMatrix,o.bbox=r.path.getBBox(r.path.map(e.realPath,n.add(e.matrix))),r._.box(o.bbox))}catch(s){return r._.box()}};var w=function(){return this.string};h.transform=function(t){var e=this._;if(null==t){for(var n,i=this,o=new r.Matrix(this.node.getCTM()),a=u(this),s=[a],c=new r.Matrix,l=a.toTransformString(),f=p(a)==p(this.matrix)?p(e.transform):l;"svg"!=i.type&&(i=i.parent());)s.push(u(i));for(n=s.length;n--;)c.add(s[n]);return{string:f,globalMatrix:o,totalMatrix:c,localMatrix:a,diffMatrix:o.clone().add(a.invert()),global:o.toTransformString(),total:c.toTransformString(),local:l,toString:w}}return t instanceof r.Matrix?(this.matrix=t,this._.transform=t.toTransformString()):u(this,t),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?g(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?g(this.node,{patternTransform:this.matrix}):g(this.node,{transform:this.matrix})),this},h.parent=function(){return x(this.node.parentNode)},h.append=h.add=function(t){if(t){if("set"==t.type){var e=this;return t.forEach(function(t){e.add(t)}),this}t=x(t),this.node.appendChild(t.node),t.paper=this.paper}return this},h.appendTo=function(t){return t&&(t=x(t),t.append(this)),this},h.prepend=function(t){if(t){if("set"==t.type){var e,n=this;return t.forEach(function(t){e?e.after(t):n.prepend(t),e=t}),this}t=x(t);var r=t.parent();this.node.insertBefore(t.node,this.node.firstChild),this.add&&this.add(),t.paper=this.paper,this.parent()&&this.parent().add(),r&&r.add()}return this},h.prependTo=function(t){return t=x(t),t.prepend(this),this},h.before=function(t){if("set"==t.type){var e=this;return t.forEach(function(t){var n=t.parent();e.node.parentNode.insertBefore(t.node,e.node),n&&n.add()}),this.parent().add(),this}t=x(t);var n=t.parent();return this.node.parentNode.insertBefore(t.node,this.node),this.parent()&&this.parent().add(),n&&n.add(),t.paper=this.paper,this},h.after=function(t){t=x(t);var e=t.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(t.node,this.node.nextSibling):this.node.parentNode.appendChild(t.node),this.parent()&&this.parent().add(),e&&e.add(),t.paper=this.paper,this},h.insertBefore=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.insertAfter=function(t){t=x(t);var e=this.parent();return t.node.parentNode.insertBefore(this.node,t.node.nextSibling),this.paper=t.paper,e&&e.add(),t.parent()&&t.parent().add(),this},h.remove=function(){var t=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,t&&t.add(),this},h.select=function(t){return t=p(t).replace(/([^\\]):/g,"$1\\:"),x(this.node.querySelector(t))},h.selectAll=function(t){for(var e=this.node.querySelectorAll(t),n=(r.set||Array)(),i=0;i{contents}',{x:+e.x.toFixed(3),y:+e.y.toFixed(3),width:+e.width.toFixed(3),height:+e.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(n)))}},s.prototype.select=h.select,s.prototype.selectAll=h.selectAll}),r.plugin(function(t,e,n,r,i){function o(t,e,n,r,i,o){return null==e&&"[object SVGMatrix]"==a.call(t)?(this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,void(this.f=t.f)):void(null!=t?(this.a=+t,this.b=+e,this.c=+n,this.d=+r,this.e=+i,this.f=+o):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var a=Object.prototype.toString,s=String,u=Math,c="";!function(e){function n(t){return t[0]*t[0]+t[1]*t[1]}function r(t){var e=u.sqrt(n(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}e.add=function(t,e,n,r,i,a){var s,u,c,l,f=[[],[],[]],h=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],d=[[t,n,i],[e,r,a],[0,0,1]];for(t&&t instanceof o&&(d=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),s=0;s<3;s++)for(u=0;u<3;u++){for(l=0,c=0;c<3;c++)l+=h[s][c]*d[c][u];f[s][u]=l}return this.a=f[0][0],this.b=f[1][0],this.c=f[0][1],this.d=f[1][1],this.e=f[0][2],this.f=f[1][2],this},e.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new o(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},e.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},e.translate=function(t,e){return this.add(1,0,0,1,t,e)},e.scale=function(t,e,n,r){return null==e&&(e=t),(n||r)&&this.add(1,0,0,1,n,r),this.add(t,0,0,e,0,0),(n||r)&&this.add(1,0,0,1,-n,-r),this},e.rotate=function(e,n,r){e=t.rad(e),n=n||0,r=r||0;var i=+u.cos(e).toFixed(9),o=+u.sin(e).toFixed(9);return this.add(i,o,-o,i,n,r),this.add(1,0,0,1,-n,-r)},e.x=function(t,e){return t*this.a+e*this.c+this.e},e.y=function(t,e){return t*this.b+e*this.d+this.f},e.get=function(t){return+this[s.fromCharCode(97+t)].toFixed(4)},e.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},e.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},e.determinant=function(){return this.a*this.d-this.b*this.c},e.split=function(){var e={};e.dx=this.e,e.dy=this.f;var i=[[this.a,this.c],[this.b,this.d]];e.scalex=u.sqrt(n(i[0])),r(i[0]),e.shear=i[0][0]*i[1][0]+i[0][1]*i[1][1],i[1]=[i[1][0]-i[0][0]*e.shear,i[1][1]-i[0][1]*e.shear],e.scaley=u.sqrt(n(i[1])),r(i[1]),e.shear/=e.scaley,this.determinant()<0&&(e.scalex=-e.scalex);var o=-i[0][1],a=i[1][1];return a<0?(e.rotate=t.deg(u.acos(a)),o<0&&(e.rotate=360-e.rotate)):e.rotate=t.deg(u.asin(o)),e.isSimple=!(+e.shear.toFixed(9)||e.scalex.toFixed(9)!=e.scaley.toFixed(9)&&e.rotate),e.isSuperSimple=!+e.shear.toFixed(9)&&e.scalex.toFixed(9)==e.scaley.toFixed(9)&&!e.rotate,e.noRotation=!+e.shear.toFixed(9)&&!e.rotate,e},e.toTransformString=function(t){var e=t||this.split();return+e.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[+e.dx.toFixed(4),+e.dy.toFixed(4)]:c)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:c)+(e.rotate?"r"+[+e.rotate.toFixed(4),0,0]:c))}}(o.prototype),t.Matrix=o,t.matrix=function(t,e,n,r,i,a){return new o(t,e,n,r,i,a)}}),r.plugin(function(t,n,r,i,o){function a(r){return function(i){if(e.stop(),i instanceof o&&1==i.node.childNodes.length&&("radialGradient"==i.node.firstChild.tagName||"linearGradient"==i.node.firstChild.tagName||"pattern"==i.node.firstChild.tagName)&&(i=i.node.firstChild,d(this).appendChild(i),i=f(i)),i instanceof n)if("radialGradient"==i.type||"linearGradient"==i.type||"pattern"==i.type){i.node.id||v(i.node,{id:i.id});var a=g(i.node.id)}else a=i.attr(r);else if(a=t.color(i),a.error){var s=t(d(this).ownerSVGElement).gradient(i);s?(s.node.id||v(s.node,{id:s.id}),a=g(s.node.id)):a=i}else a=m(a);var u={};u[r]=a,v(this.node,u),this.node.style[r]=b}}function s(t){e.stop(),t==+t&&(t+="px"),this.node.style.fontSize=t}function u(t){for(var e=[],n=t.childNodes,r=0,i=n.length;r1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polyline",e)},s.polygon=function(t){arguments.length>1&&(t=Array.prototype.slice.call(arguments,0));var e={};return u(t,"object")&&!u(t,"array")?e=t:null!=t&&(e={points:t}),this.el("polygon",e)},function(){function r(){return this.selectAll("stop")}function i(t,e){var r=l("stop"),i={offset:+e+"%"};return t=n.color(t),i["stop-color"]=t.hex,t.opacity<1&&(i["stop-opacity"]=t.opacity),l(r,i),this.node.appendChild(r),this}function o(){if("linearGradient"==this.type){var t=l(this.node,"x1")||0,e=l(this.node,"x2")||1,r=l(this.node,"y1")||0,i=l(this.node,"y2")||0;return n._.box(t,r,math.abs(e-t),math.abs(i-r))}var o=this.node.cx||.5,a=this.node.cy||.5,s=this.node.r||0;return n._.box(o-s,a-s,2*s,2*s)}function a(t,n){function r(t,e){for(var n=(e-f)/(t-h),r=h;ro){if(r&&!v.start){if(d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g),p+=["C"+i(d.start.x),i(d.start.y),i(d.m.x),i(d.m.y),i(d.x),i(d.y)],a)return p;v.start=p,p=["M"+i(d.x),i(d.y)+"C"+i(d.n.x),i(d.n.y),i(d.end.x),i(d.end.y),i(f[5]),i(f[6])].join(),g+=h,s=+f[5],c=+f[6];continue}if(!n&&!r)return d=u(s,c,f[1],f[2],f[3],f[4],f[5],f[6],o-g)}g+=h,s=+f[5],c=+f[6]}p+=f.shift()+f}return v.end=p,d=n?g:r?v:l(s,c,f[0],f[1],f[2],f[3],f[4],f[5],1)},null,t._.clone)}function l(t,e,n,r,i,o,a,s,u){var c=1-u,l=U(c,3),f=U(c,2),h=u*u,d=h*u,p=l*t+3*f*u*n+3*c*u*u*i+d*a,v=l*e+3*f*u*r+3*c*u*u*o+d*s,g=t+2*u*(n-t)+h*(i-2*n+t),m=e+2*u*(r-e)+h*(o-2*r+e),y=n+2*u*(i-n)+h*(a-2*i+n),b=r+2*u*(o-r)+h*(s-2*o+r),x=c*t+u*n,w=c*e+u*r,_=c*i+u*a,C=c*o+u*s,k=90-180*H.atan2(g-y,m-b)/q;return{x:p,y:v,m:{x:g,y:m},n:{x:y,y:b},start:{x:x,y:w},end:{x:_,y:C},alpha:k}}function f(e,n,r,i,a,s,u,c){t.is(e,"array")||(e=[e,n,r,i,a,s,u,c]);var l=O.apply(null,e);return o(l.min.x,l.min.y,l.max.x-l.min.x,l.max.y-l.min.y)}function h(t,e,n){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height}function d(t,e){return t=o(t),e=o(e),h(e,t.x,t.y)||h(e,t.x2,t.y)||h(e,t.x,t.y2)||h(e,t.x2,t.y2)||h(t,e.x,e.y)||h(t,e.x2,e.y)||h(t,e.x,e.y2)||h(t,e.x2,e.y2)||(t.xe.x||e.xt.x)&&(t.ye.y||e.yt.y)}function p(t,e,n,r,i){var o=-3*e+9*n-9*r+3*i,a=t*o+6*e-12*n+6*r;return t*a-3*e+3*n}function v(t,e,n,r,i,o,a,s,u){null==u&&(u=1),u=u>1?1:u<0?0:u;for(var c=u/2,l=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],h=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,v=0;vd;)f/=2,h+=(cV(i,a)||V(e,r)V(o,s))){var u=(t*r-e*n)*(i-a)-(t-n)*(i*s-o*a),c=(t*r-e*n)*(o-s)-(e-r)*(i*s-o*a),l=(t-n)*(o-s)-(e-r)*(i-a);if(l){var f=u/l,h=c/l,d=+f.toFixed(2),p=+h.toFixed(2);if(!(d<+z(t,n).toFixed(2)||d>+V(t,n).toFixed(2)||d<+z(i,a).toFixed(2)||d>+V(i,a).toFixed(2)||p<+z(e,r).toFixed(2)||p>+V(e,r).toFixed(2)||p<+z(o,s).toFixed(2)||p>+V(o,s).toFixed(2)))return{x:f,y:h}}}}function y(t,e,n){var r=f(t),i=f(e);if(!d(r,i))return n?0:[];for(var o=v.apply(0,t),a=v.apply(0,e),s=~~(o/8),u=~~(a/8),c=[],h=[],p={},g=n?0:[],y=0;y=0&&$<=1&&E>=0&&E<=1&&(n?g++:g.push({x:S.x,y:S.y,t1:$,t2:E}))}}return g}function b(t,e){return w(t,e)}function x(t,e){return w(t,e,1)}function w(t,e,n){t=N(t),e=N(e);for(var r,i,o,a,s,u,c,l,f,h,d=n?0:[],p=0,v=t.length;p180),0,u,l]];else f=[["M",t,e],["m",0,-r],["a",n,r,0,1,1,0,2*r],["a",n,r,0,1,1,0,-2*r],["z"]];return f.toString=a,f}function A(e){var n=i(e),r=String.prototype.toLowerCase;if(n.rel)return s(n.rel);t.is(e,"array")&&t.is(e&&e[0],"array")||(e=t.parsePathString(e));var o=[],u=0,c=0,l=0,f=0,h=0;"M"==e[0][0]&&(u=e[0][1],c=e[0][2],l=u,f=c,h++,o.push(["M",u,c]));for(var d=h,p=e.length;d1&&(y=H.sqrt(y),r=y*r,i=y*i);var b=r*r,x=i*i,w=(a==s?-1:1)*H.sqrt(W((b*x-b*m*m-x*g*g)/(b*m*m+x*g*g))),_=w*r*m/i+(e+u)/2,C=w*-i*g/r+(n+c)/2,k=H.asin(((n-C)/i).toFixed(9)),T=H.asin(((c-C)/i).toFixed(9));k=e<_?q-k:k,T=u<_?q-T:T,k<0&&(k=2*q+k),T<0&&(T=2*q+T),s&&k>T&&(k-=2*q),!s&&T>k&&(T-=2*q)}var A=T-k;if(W(A)>h){var S=T,$=u,E=c;T=k+h*(s&&T>k?1:-1),u=_+r*H.cos(T),c=C+i*H.sin(T),p=j(u,c,r,i,o,0,s,$,E,[T,S,_,C])}A=T-k;var O=H.cos(k),N=H.sin(k),D=H.cos(T),M=H.sin(T),P=H.tan(A/4),F=4/3*r*P,B=4/3*i*P,L=[e,n],R=[e+F*N,n-B*O],I=[u+F*M,c-B*D],z=[u,c];if(R[0]=2*L[0]-R[0],R[1]=2*L[1]-R[1],l)return[R,I,z].concat(p);p=[R,I,z].concat(p).join().split(",");for(var V=[],U=0,X=p.length;U7){t[e].shift();for(var n=t[e];n.length;)h[e]="A",o&&(d[e]="A"),t.splice(e++,0,["C"].concat(n.splice(0,6)));t.splice(e,1),m=V(r.length,o&&o.length||0)}},f=function(t,e,n,i,a){t&&e&&"M"==t[a][0]&&"M"!=e[a][0]&&(e.splice(a,0,["M",i.x,i.y]),n.bx=0,n.by=0,n.x=t[a][1],n.y=t[a][2],m=V(r.length,o&&o.length||0))},h=[],d=[],p="",v="",g=0,m=V(r.length,o&&o.length||0);gr;r+=2){var o=[{x:+t[r-2],y:+t[r-1]},{x:+t[r],y:+t[r+1]},{x:+t[r+2],y:+t[r+3]},{x:+t[r+4],y:+t[r+5]}];e?r?i-4==r?o[3]={x:+t[0],y:+t[1]}:i-2==r&&(o[2]={x:+t[0],y:+t[1]},o[3]={x:+t[2],y:+t[3]}):o[0]={x:+t[i-2],y:+t[i-1]}:i-4==r?o[3]=o[2]:r||(o[0]={x:+t[r],y:+t[r+1]}),n.push(["C",(-o[0].x+6*o[1].x+o[2].x)/6,(-o[0].y+6*o[1].y+o[2].y)/6,(o[1].x+6*o[2].x-o[3].x)/6,(o[1].y+6*o[2].y-o[3].y)/6,o[2].x,o[2].y])}return n}var P=e.prototype,F=t.is,B=t._.clone,L="hasOwnProperty",R=/,?([a-z]),?/gi,I=parseFloat,H=Math,q=H.PI,z=H.min,V=H.max,U=H.pow,W=H.abs,X=c(1),G=c(),Z=c(0,1),J=t._unit2px,Y={path:function(t){return t.attr("path")},circle:function(t){var e=J(t);return T(e.cx,e.cy,e.r)},ellipse:function(t){var e=J(t);return T(e.cx||0,e.cy||0,e.rx,e.ry)},rect:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height,e.rx,e.ry)},image:function(t){var e=J(t);return k(e.x||0,e.y||0,e.width,e.height)},line:function(t){return"M"+[t.attr("x1")||0,t.attr("y1")||0,t.attr("x2"),t.attr("y2")]},polyline:function(t){return"M"+t.attr("points")},polygon:function(t){return"M"+t.attr("points")+"z"},deflt:function(t){var e=t.node.getBBox();return k(e.x,e.y,e.width,e.height)}};t.path=i,t.path.getTotalLength=X,t.path.getPointAtLength=G,t.path.getSubpath=function(t,e,n){if(this.getTotalLength(t)-n<1e-6)return Z(t,e).end;var r=Z(t,n,1);return e?Z(r,e).end:r},P.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()},P.getPointAtLength=function(t){return G(this.attr("d"),t)},P.getSubpath=function(e,n){return t.path.getSubpath(this.attr("d"),e,n)},t._.box=o,t.path.findDotsAtSegment=l,t.path.bezierBBox=f,t.path.isPointInsideBBox=h,t.closest=function(e,n,r,i){for(var a=100,s=o(e-a/2,n-a/2,a,a),u=[],c=r[0].hasOwnProperty("x")?function(t){return{x:r[t].x,y:r[t].y}}:function(t){return{x:r[t],y:i[t]}},l=0;a<=1e6&&!l;){for(var f=0,d=r.length;fm&&(g=m,u[f].len=m,v=u[f])}return v}},t.path.isBBoxIntersect=d,t.path.intersection=b,t.path.intersectionNumber=x,t.path.isPointInside=_,t.path.getBBox=C,t.path.get=Y,t.path.toRelative=A,t.path.toAbsolute=S,t.path.toCubic=N,t.path.map=D,t.path.toString=a,t.path.clone=s}),r.plugin(function(t,r,i,o){var a=Math.max,s=Math.min,u=function(t){if(this.items=[],this.bindings={},this.length=0,this.type="set",t)for(var e=0,n=t.length;e',{def:r})},t.filter.blur.toString=function(){return this()},t.filter.shadow=function(e,n,r,i,o){return"string"==typeof r&&(i=r,o=i,r=4),"string"!=typeof i&&(o=i,i="#000"),i=i||"#000",null==r&&(r=4),null==o&&(o=1),null==e&&(e=0,n=2),null==n&&(n=e),i=t.color(i),t.format('',{color:i,dx:e,dy:n,blur:r,opacity:o})},t.filter.shadow.toString=function(){return this()},t.filter.grayscale=function(e){return null==e&&(e=1),t.format('',{a:.2126+.7874*(1-e),b:.7152-.7152*(1-e),c:.0722-.0722*(1-e),d:.2126-.2126*(1-e),e:.7152+.2848*(1-e),f:.0722-.0722*(1-e),g:.2126-.2126*(1-e),h:.0722+.9278*(1-e)})},t.filter.grayscale.toString=function(){return this()},t.filter.sepia=function(e){return null==e&&(e=1),t.format('',{a:.393+.607*(1-e),b:.769-.769*(1-e),c:.189-.189*(1-e),d:.349-.349*(1-e),e:.686+.314*(1-e),f:.168-.168*(1-e),g:.272-.272*(1-e),h:.534-.534*(1-e),i:.131+.869*(1-e)})},t.filter.sepia.toString=function(){return this()},t.filter.saturate=function(e){return null==e&&(e=1),t.format('',{amount:1-e})},t.filter.saturate.toString=function(){return this()},t.filter.hueRotate=function(e){return e=e||0,t.format('',{angle:e})},t.filter.hueRotate.toString=function(){return this()},t.filter.invert=function(e){return null==e&&(e=1),t.format('',{amount:e,amount2:1-e})},t.filter.invert.toString=function(){return this()},t.filter.brightness=function(e){return null==e&&(e=1),t.format('',{amount:e})},t.filter.brightness.toString=function(){return this()},t.filter.contrast=function(e){return null==e&&(e=1),t.format('',{amount:e,amount2:.5-e/2})},t.filter.contrast.toString=function(){return this()}}),r.plugin(function(t,e,n,r,i){var o=t._.box,a=t.is,s=/^[^a-z]*([tbmlrc])/i,u=function(){return"T"+this.dx+","+this.dy};e.prototype.getAlign=function(t,e){null==e&&a(t,"string")&&(e=t,t=null),t=t||this.paper;var n=t.getBBox?t.getBBox():o(t),r=this.getBBox(),i={};switch(e=e&&e.match(s),e=e?e[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=n.y-r.y;break;case"b":i.dx=0,i.dy=n.y2-r.y2;break;case"m":i.dx=0,i.dy=n.cy-r.cy;break;case"l":i.dx=n.x-r.x,i.dy=0;break;case"r":i.dx=n.x2-r.x2,i.dy=0;break;default:i.dx=n.cx-r.cx,i.dy=0}return i.toString=u,i},e.prototype.align=function(t,e){return this.transform("..."+this.getAlign(t,e))}}),r})}).call(window)},function(t,e,n){var r,i;(function(t){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};/*! - * jQuery JavaScript Library v3.0.0 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-06-09T18:02Z - */ -!function(e,r){"object"===n(t)&&"object"===n(t.exports)?t.exports=e.document?r(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return r(t)}:r(e)}("undefined"!=typeof window?window:void 0,function(o,a){function s(t,e){e=e||it;var n=e.createElement("script");n.text=t,e.head.appendChild(n).parentNode.removeChild(n)}function u(t){var e=!!t&&"length"in t&&t.length,n=mt.type(t);return"function"!==n&&!mt.isWindow(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function c(t,e,n){if(mt.isFunction(e))return mt.grep(t,function(t,r){return!!e.call(t,r,t)!==n});if(e.nodeType)return mt.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(St.test(e))return mt.filter(e,t,n);e=mt.filter(e,t)}return mt.grep(t,function(t){return ct.call(e,t)>-1!==n&&1===t.nodeType})}function l(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function f(t){var e={};return mt.each(t.match(Dt)||[],function(t,n){e[n]=!0}),e}function h(t){return t}function d(t){throw t}function p(t,e,n){var r;try{t&&mt.isFunction(r=t.promise)?r.call(t).done(e).fail(n):t&&mt.isFunction(r=t.then)?r.call(t,e,n):e.call(void 0,t)}catch(t){n.call(void 0,t)}}function v(){it.removeEventListener("DOMContentLoaded",v),o.removeEventListener("load",v),mt.ready()}function g(){this.expando=mt.expando+g.uid++}function m(t,e,n){var r;if(void 0===n&&1===t.nodeType)if(r="data-"+e.replace(Ht,"-$&").toLowerCase(),n=t.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:It.test(n)?JSON.parse(n):n)}catch(i){}Rt.set(t,e,n)}else n=void 0;return n}function y(t,e,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return mt.css(t,e,"")},u=s(),c=n&&n[3]||(mt.cssNumber[e]?"":"px"),l=(mt.cssNumber[e]||"px"!==c&&+u)&&zt.exec(mt.css(t,e));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do o=o||".5",l/=o,mt.style(t,e,l+c);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}function b(t){var e,n=t.ownerDocument,r=t.nodeName,i=Xt[r];return i?i:(e=n.body.appendChild(n.createElement(r)),i=mt.css(e,"display"),e.parentNode.removeChild(e),"none"===i&&(i="block"),Xt[r]=i,i)}function x(t,e){for(var n,r,i=[],o=0,a=t.length;o-1)i&&i.push(o);else if(c=mt.contains(o.ownerDocument,o),a=w(f.appendChild(o),"script"),c&&_(a),n)for(l=0;o=a[l++];)Jt.test(o.type||"")&&n.push(o);return f}function k(){return!0}function T(){return!1}function A(){try{return it.activeElement}catch(t){}}function S(t,e,r,i,o,a){var s,u;if("object"===("undefined"==typeof e?"undefined":n(e))){"string"!=typeof r&&(i=i||r,r=void 0);for(u in e)S(t,u,r,i,e[u],a);return t}if(null==i&&null==o?(o=r,i=r=void 0):null==o&&("string"==typeof r?(o=i,i=void 0):(o=i,i=r,r=void 0)),o===!1)o=T;else if(!o)return t;return 1===a&&(s=o,o=function(t){return mt().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=mt.guid++)),t.each(function(){mt.event.add(this,e,o,i,r)})}function $(t,e){return mt.nodeName(t,"table")&&mt.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t:t}function E(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function j(t){var e=ae.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function O(t,e){var n,r,i,o,a,s,u,c;if(1===e.nodeType){if(Lt.hasData(t)&&(o=Lt.access(t),a=Lt.set(e,o),c=o.events)){delete a.handle,a.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof p&&!vt.checkClone&&oe.test(p))return t.each(function(i){var o=t.eq(i);v&&(e[0]=p.call(this,i,o.html())),D(o,e,n,r)});if(h&&(i=C(e,t[0].ownerDocument,!1,t,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=mt.map(w(i,"script"),E),u=a.length;f=0&&nC.cacheLength&&delete t[e.shift()],t[n+" "]=r}var e=[];return t}function r(t){return t[I]=!0,t}function i(t){var e=D.createElement("fieldset");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function o(t,e){for(var n=t.split("|"),r=n.length;r--;)C.attrHandle[n[r]]=e}function a(t,e){var n=e&&t,r=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function s(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function u(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function c(t){return function(e){return"label"in e&&e.disabled===t||"form"in e&&e.disabled===t||"form"in e&&e.disabled===!1&&(e.isDisabled===t||e.isDisabled!==!t&&("label"in e||!kt(e))!==t)}}function l(t){return r(function(e){return e=+e,r(function(n,r){for(var i,o=t([],n.length,e),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function h(){}function d(t){for(var e=0,n=t.length,r="";e1?function(e,n,r){for(var i=t.length;i--;)if(!t[i](e,n,r))return!1;return!0}:t[0]}function g(t,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(a[c]=f))}}else b=m(b===a?b.splice(p,b.length):b),o?o(null,a,b,u):Q.apply(a,b)})}function b(t){for(var e,n,r,i=t.length,o=C.relative[t[0].type],a=o||C.relative[" "],s=o?1:0,u=p(function(t){return t===e},a,!0),c=p(function(t){return tt(e,t)>-1},a,!0),l=[function(t,n,r){var i=!o&&(r||n!==E)||((e=n).nodeType?u(t,n,r):c(t,n,r));return e=null,i}];s1&&v(l),s>1&&d(t.slice(0,s-1).concat({value:" "===t[s-2].type?"*":""})).replace(st,"$1"),n,s0,o=t.length>0,a=function(r,a,s,u,c){var l,f,h,d=0,p="0",v=r&&[],g=[],y=E,b=r||o&&C.find.TAG("*",c),x=q+=null==y?1:Math.random()||.1,w=b.length;for(c&&(E=a===D||a||c);p!==w&&null!=(l=b[p]);p++){if(o&&l){for(f=0,a||l.ownerDocument===D||(N(l),s=!P);h=t[f++];)if(h(l,a||D,s)){u.push(l);break}c&&(q=x)}i&&((l=!h&&l)&&d--,r&&v.push(l))}if(d+=p,i&&p!==d){for(f=0;h=n[f++];)h(v,g,a,s);if(r){if(d>0)for(;p--;)v[p]||g[p]||(g[p]=J.call(u));g=m(g)}Q.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&e.uniqueSort(u)}return c&&(q=x,E=y),v};return i?r(a):a}var w,_,C,k,T,A,S,$,E,j,O,N,D,M,P,F,B,L,R,I="sizzle"+1*new Date,H=t.document,q=0,z=0,V=n(),U=n(),W=n(),X=function(t,e){return t===e&&(O=!0),0},G={}.hasOwnProperty,Z=[],J=Z.pop,Y=Z.push,Q=Z.push,K=Z.slice,tt=function(t,e){for(var n=0,r=t.length;n+~]|"+nt+")"+nt+"*"),lt=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),ft=new RegExp(ot),ht=new RegExp("^"+rt+"$"),dt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),TAG:new RegExp("^("+rt+"|[*])"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},pt=/^(?:input|select|textarea|button)$/i,vt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),xt=function(t,e,n){var r="0x"+e-65536;return r!==r||n?e:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},wt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,_t=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},Ct=function(){N()},kt=p(function(t){return t.disabled===!0},{dir:"parentNode",next:"legend"});try{Q.apply(Z=K.call(H.childNodes),H.childNodes),Z[H.childNodes.length].nodeType}catch(Tt){Q={apply:Z.length?function(t,e){Y.apply(t,K.call(e))}:function(t,e){for(var n=t.length,r=0;t[n++]=e[r++];);t.length=n-1}}}_=e.support={},T=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},N=e.setDocument=function(t){var e,n,r=t?t.ownerDocument||t:H;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,M=D.documentElement,P=!T(D),H!==D&&(n=D.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ct,!1):n.attachEvent&&n.attachEvent("onunload",Ct)),_.attributes=i(function(t){return t.className="i",!t.getAttribute("className")}),_.getElementsByTagName=i(function(t){return t.appendChild(D.createComment("")),!t.getElementsByTagName("*").length}),_.getElementsByClassName=gt.test(D.getElementsByClassName),_.getById=i(function(t){return M.appendChild(t).id=I,!D.getElementsByName||!D.getElementsByName(I).length}),_.getById?(C.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&P){var n=e.getElementById(t);return n?[n]:[]}},C.filter.ID=function(t){var e=t.replace(bt,xt);return function(t){return t.getAttribute("id")===e}}):(delete C.find.ID,C.filter.ID=function(t){var e=t.replace(bt,xt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),C.find.TAG=_.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):_.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,r=[],i=0,o=e.getElementsByTagName(t);if("*"===t){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},C.find.CLASS=_.getElementsByClassName&&function(t,e){if("undefined"!=typeof e.getElementsByClassName&&P)return e.getElementsByClassName(t)},B=[],F=[],(_.qsa=gt.test(D.querySelectorAll))&&(i(function(t){M.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||F.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+I+"-]").length||F.push("~="),t.querySelectorAll(":checked").length||F.push(":checked"),t.querySelectorAll("a#"+I+"+*").length||F.push(".#.+[+~]")}),i(function(t){t.innerHTML="";var e=D.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&F.push("name"+nt+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&F.push(":enabled",":disabled"),M.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&F.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),F.push(",.*:")})),(_.matchesSelector=gt.test(L=M.matches||M.webkitMatchesSelector||M.mozMatchesSelector||M.oMatchesSelector||M.msMatchesSelector))&&i(function(t){_.disconnectedMatch=L.call(t,"*"),L.call(t,"[s!='']:x"),B.push("!=",ot)}),F=F.length&&new RegExp(F.join("|")),B=B.length&&new RegExp(B.join("|")),e=gt.test(M.compareDocumentPosition),R=e||gt.test(M.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},X=e?function(t,e){if(t===e)return O=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!_.sortDetached&&e.compareDocumentPosition(t)===n?t===D||t.ownerDocument===H&&R(H,t)?-1:e===D||e.ownerDocument===H&&R(H,e)?1:j?tt(j,t)-tt(j,e):0:4&n?-1:1)}:function(t,e){if(t===e)return O=!0,0;var n,r=0,i=t.parentNode,o=e.parentNode,s=[t],u=[e];if(!i||!o)return t===D?-1:e===D?1:i?-1:o?1:j?tt(j,t)-tt(j,e):0;if(i===o)return a(t,e);for(n=t;n=n.parentNode;)s.unshift(n);for(n=e;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===H?-1:u[r]===H?1:0},D):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&N(t),n=n.replace(lt,"='$1']"),_.matchesSelector&&P&&!W[n+" "]&&(!B||!B.test(n))&&(!F||!F.test(n)))try{var r=L.call(t,n);if(r||_.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==D&&N(t),R(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==D&&N(t);var n=C.attrHandle[e.toLowerCase()],r=n&&G.call(C.attrHandle,e.toLowerCase())?n(t,e,!P):void 0;return void 0!==r?r:_.attributes||!P?t.getAttribute(e):(r=t.getAttributeNode(e))&&r.specified?r.value:null},e.escape=function(t){return(t+"").replace(wt,_t)},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],r=0,i=0;if(O=!_.detectDuplicates,j=!_.sortStable&&t.slice(0),t.sort(X),O){for(;e=t[i++];)e===t[i]&&(r=n.push(i));for(;r--;)t.splice(n[r],1)}return j=null,t},k=e.getText=function(t){var e,n="",r=0,i=t.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=k(t)}else if(3===i||4===i)return t.nodeValue}else for(;e=t[r++];)n+=k(e);return n},C=e.selectors={cacheLength:50,createPseudo:r,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(bt,xt),t[3]=(t[3]||t[4]||t[5]||"").replace(bt,xt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&ft.test(n)&&(e=A(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(bt,xt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=V[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&V(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(at," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(t,e,n,r,i){var o="nth"!==t.slice(0,3),a="last"!==t.slice(-4),s="of-type"===e;return 1===r&&0===i?function(t){return!!t.parentNode}:function(e,n,u){var c,l,f,h,d,p,v=o!==a?"nextSibling":"previousSibling",g=e.parentNode,m=s&&e.nodeName.toLowerCase(),y=!u&&!s,b=!1;if(g){if(o){for(;v;){for(h=e;h=h[v];)if(s?h.nodeName.toLowerCase()===m:1===h.nodeType)return!1;p=v="only"===t&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(h=g,f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),c=l[t]||[],d=c[0]===q&&c[1],b=d&&c[2],h=d&&g.childNodes[d];h=++d&&h&&h[v]||(b=d=0)||p.pop();)if(1===h.nodeType&&++b&&h===e){l[t]=[q,d,b];break}}else if(y&&(h=e,f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),c=l[t]||[],d=c[0]===q&&c[1],b=d),b===!1)for(;(h=++d&&h&&h[v]||(b=d=0)||p.pop())&&((s?h.nodeName.toLowerCase()!==m:1!==h.nodeType)||!++b||(y&&(f=h[I]||(h[I]={}),l=f[h.uniqueID]||(f[h.uniqueID]={}),l[t]=[q,b]),h!==e)););return b-=i,b===r||b%r===0&&b/r>=0}}},PSEUDO:function(t,n){var i,o=C.pseudos[t]||C.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[I]?o(n):o.length>1?(i=[t,t,"",n],C.setFilters.hasOwnProperty(t.toLowerCase())?r(function(t,e){for(var r,i=o(t,n),a=i.length;a--;)r=tt(t,i[a]),t[r]=!(e[r]=i[a])}):function(t){return o(t,0,i)}):o}},pseudos:{not:r(function(t){var e=[],n=[],i=S(t.replace(st,"$1"));return i[I]?r(function(t,e,n,r){for(var o,a=i(t,null,r,[]),s=t.length;s--;)(o=a[s])&&(t[s]=!(e[s]=o))}):function(t,r,o){return e[0]=t,i(e,null,o,n),e[0]=null,!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(t){return t=t.replace(bt,xt),function(e){return(e.textContent||e.innerText||k(e)).indexOf(t)>-1}}),lang:r(function(t){return ht.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(bt,xt).toLowerCase(),function(e){var n;do if(n=P?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===M},focus:function(t){return t===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!C.pseudos.empty(t)},header:function(t){return vt.test(t.nodeName)},input:function(t){return pt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,n){return[n<0?n+e:n]}),even:l(function(t,e){for(var n=0;n=0;)t.push(r);return t}),gt:l(function(t,e,n){for(var r=n<0?n+e:n;++r2&&"ID"===(a=o[0]).type&&_.getById&&9===e.nodeType&&P&&C.relative[o[1].type]){if(e=(C.find.ID(a.matches[0].replace(bt,xt),e)||[])[0],!e)return n;c&&(e=e.parentNode),t=t.slice(o.shift().value.length)}for(i=dt.needsContext.test(t)?0:o.length;i--&&(a=o[i],!C.relative[s=a.type]);)if((u=C.find[s])&&(r=u(a.matches[0].replace(bt,xt),yt.test(o[0].type)&&f(e.parentNode)||e))){if(o.splice(i,1),t=r.length&&d(o),!t)return Q.apply(n,r),n;break}}return(c||S(t,l))(r,e,!P,n,!e||yt.test(t)&&f(e.parentNode)||e),n},_.sortStable=I.split("").sort(X).join("")===I,_.detectDuplicates=!!O,N(),_.sortDetached=i(function(t){return 1&t.compareDocumentPosition(D.createElement("fieldset"))}),i(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||o("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),_.attributes&&i(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||o("value",function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),i(function(t){return null==t.getAttribute("disabled")})||o(et,function(t,e,n){var r;if(!n)return t[e]===!0?e.toLowerCase():(r=t.getAttributeNode(e))&&r.specified?r.value:null}),e}(o);mt.find=_t,mt.expr=_t.selectors,mt.expr[":"]=mt.expr.pseudos,mt.uniqueSort=mt.unique=_t.uniqueSort,mt.text=_t.getText,mt.isXMLDoc=_t.isXML,mt.contains=_t.contains,mt.escapeSelector=_t.escape;var Ct=function(t,e,n){for(var r=[],i=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&mt(t).is(n))break;r.push(t)}return r},kt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},Tt=mt.expr.match.needsContext,At=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,St=/^.[^:#\[\.,]*$/;mt.filter=function(t,e,n){var r=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===r.nodeType?mt.find.matchesSelector(r,t)?[r]:[]:mt.find.matches(t,mt.grep(e,function(t){return 1===t.nodeType}))},mt.fn.extend({find:function(t){var e,n,r=this.length,i=this;if("string"!=typeof t)return this.pushStack(mt(t).filter(function(){for(e=0;e1?mt.uniqueSort(n):n},filter:function(t){return this.pushStack(c(this,t||[],!1))},not:function(t){return this.pushStack(c(this,t||[],!0))},is:function(t){return!!c(this,"string"==typeof t&&Tt.test(t)?mt(t):t||[],!1).length}});var $t,Et=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,jt=mt.fn.init=function(t,e,n){var r,i;if(!t)return this;if(n=n||$t,"string"==typeof t){if(r="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:Et.exec(t),!r||!r[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(r[1]){if(e=e instanceof mt?e[0]:e,mt.merge(this,mt.parseHTML(r[1],e&&e.nodeType?e.ownerDocument||e:it,!0)),At.test(r[1])&&mt.isPlainObject(e))for(r in e)mt.isFunction(this[r])?this[r](e[r]):this.attr(r,e[r]);return this}return i=it.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):mt.isFunction(t)?void 0!==n.ready?n.ready(t):t(mt):mt.makeArray(t,this)};jt.prototype=mt.fn,$t=mt(it);var Ot=/^(?:parents|prev(?:Until|All))/,Nt={children:!0,contents:!0,next:!0,prev:!0};mt.fn.extend({has:function(t){var e=mt(t,this),n=e.length;return this.filter(function(){for(var t=0;t-1:1===n.nodeType&&mt.find.matchesSelector(n,t))){o.push(n);break}return this.pushStack(o.length>1?mt.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?ct.call(mt(t),this[0]):ct.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(mt.uniqueSort(mt.merge(this.get(),mt(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),mt.each({parent:function tn(t){var tn=t.parentNode;return tn&&11!==tn.nodeType?tn:null},parents:function(t){return Ct(t,"parentNode")},parentsUntil:function(t,e,n){return Ct(t,"parentNode",n)},next:function(t){return l(t,"nextSibling")},prev:function(t){return l(t,"previousSibling")},nextAll:function(t){return Ct(t,"nextSibling")},prevAll:function(t){return Ct(t,"previousSibling")},nextUntil:function(t,e,n){return Ct(t,"nextSibling",n)},prevUntil:function(t,e,n){return Ct(t,"previousSibling",n)},siblings:function(t){return kt((t.parentNode||{}).firstChild,t)},children:function(t){return kt(t.firstChild)},contents:function(t){return t.contentDocument||mt.merge([],t.childNodes)}},function(t,e){mt.fn[t]=function(n,r){var i=mt.map(this,e,n);return"Until"!==t.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=mt.filter(r,i)),this.length>1&&(Nt[t]||mt.uniqueSort(i),Ot.test(t)&&i.reverse()),this.pushStack(i)}});var Dt=/\S+/g;mt.Callbacks=function(t){t="string"==typeof t?f(t):mt.extend({},t);var e,n,r,i,o=[],a=[],s=-1,u=function(){for(i=t.once,r=e=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--}),this},has:function(t){return t?mt.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||e||(o=n=""),this},locked:function(){return!!i},fireWith:function(t,n){return i||(n=n||[],n=[t,n.slice?n.slice():n],a.push(n),e||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},mt.extend({Deferred:function(t){var e=[["notify","progress",mt.Callbacks("memory"),mt.Callbacks("memory"),2],["resolve","done",mt.Callbacks("once memory"),mt.Callbacks("once memory"),0,"resolved"],["reject","fail",mt.Callbacks("once memory"),mt.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},"catch":function(t){return i.then(null,t)},pipe:function(){var t=arguments;return mt.Deferred(function(n){mt.each(e,function(e,r){var i=mt.isFunction(t[r[4]])&&t[r[4]];a[r[1]](function(){var t=i&&i.apply(this,arguments);t&&mt.isFunction(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[t]:arguments)})}),t=null}).promise()},then:function(t,r,i){function a(t,e,r,i){return function(){var u=this,c=arguments,l=function(){var o,l;if(!(t=s&&(r!==d&&(u=void 0,c=[n]),e.rejectWith(u,c))}};t?f():(mt.Deferred.getStackHook&&(f.stackTrace=mt.Deferred.getStackHook()),o.setTimeout(f))}}var s=0;return mt.Deferred(function(n){e[0][3].add(a(0,n,mt.isFunction(i)?i:h,n.notifyWith)),e[1][3].add(a(0,n,mt.isFunction(t)?t:h)),e[2][3].add(a(0,n,mt.isFunction(r)?r:d))}).promise()},promise:function(t){return null!=t?mt.extend(t,i):i}},a={};return mt.each(e,function(t,n){var o=n[2],s=n[5];i[n[1]]=o.add,s&&o.add(function(){r=s},e[3-t][2].disable,e[0][2].lock),o.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=o.fireWith}),i.promise(a),t&&t.call(a,a),a},when:function(t){var e=arguments.length,n=e,r=Array(n),i=at.call(arguments),o=mt.Deferred(),a=function(t){return function(n){r[t]=this,i[t]=arguments.length>1?at.call(arguments):n,--e||o.resolveWith(r,i)}};if(e<=1&&(p(t,o.done(a(n)).resolve,o.reject),"pending"===o.state()||mt.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)p(i[n],a(n),o.reject);return o.promise()}});var Mt=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;mt.Deferred.exceptionHook=function(t,e){o.console&&o.console.warn&&t&&Mt.test(t.name)&&o.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)};var Pt=mt.Deferred();mt.fn.ready=function(t){return Pt.then(t),this},mt.extend({isReady:!1,readyWait:1,holdReady:function(t){t?mt.readyWait++:mt.ready(!0)},ready:function(t){(t===!0?--mt.readyWait:mt.isReady)||(mt.isReady=!0,t!==!0&&--mt.readyWait>0||Pt.resolveWith(it,[mt]))}}),mt.ready.then=Pt.then,"complete"===it.readyState||"loading"!==it.readyState&&!it.documentElement.doScroll?o.setTimeout(mt.ready):(it.addEventListener("DOMContentLoaded",v),o.addEventListener("load",v));var Ft=function en(t,e,n,r,i,o,a){var s=0,u=t.length,c=null==n;if("object"===mt.type(n)){i=!0;for(s in n)en(t,e,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,mt.isFunction(r)||(a=!0),c&&(a?(e.call(t,r),e=null):(c=e,e=function(t,e,n){return c.call(mt(t),n)})),e))for(;s1,null,!0)},removeData:function(t){return this.each(function(){Rt.remove(this,t)})}}),mt.extend({queue:function rn(t,e,n){var rn;if(t)return e=(e||"fx")+"queue",rn=Lt.get(t,e),n&&(!rn||mt.isArray(n)?rn=Lt.access(t,e,mt.makeArray(n)):rn.push(n)),rn||[]},dequeue:function(t,e){e=e||"fx";var n=mt.queue(t,e),r=n.length,i=n.shift(),o=mt._queueHooks(t,e),a=function(){mt.dequeue(t,e)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===e&&n.unshift("inprogress"),delete o.stop,i.call(t,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Lt.get(t,n)||Lt.access(t,n,{empty:mt.Callbacks("once memory").add(function(){Lt.remove(t,[e+"queue",n])})})}}),mt.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Jt=/^$|\/(?:java|ecma)script/i,Yt={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Yt.optgroup=Yt.option,Yt.tbody=Yt.tfoot=Yt.colgroup=Yt.caption=Yt.thead,Yt.th=Yt.td;var Qt=/<|&#?\w+;/;!function(){var t=it.createDocumentFragment(),e=t.appendChild(it.createElement("div")),n=it.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),vt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",vt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue; -}();var Kt=it.documentElement,te=/^key/,ee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ne=/^([^.]*)(?:\.(.+)|)/;mt.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,c,l,f,h,d,p,v,g=Lt.get(t);if(g)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&mt.find.matchesSelector(Kt,i),n.guid||(n.guid=mt.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(e){return"undefined"!=typeof mt&&mt.event.triggered!==e.type?mt.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(Dt)||[""],c=e.length;c--;)s=ne.exec(e[c])||[],d=v=s[1],p=(s[2]||"").split(".").sort(),d&&(f=mt.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=mt.event.special[d]||{},l=mt.extend({type:d,origType:v,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&mt.expr.match.needsContext.test(i),namespace:p.join(".")},o),(h=u[d])||(h=u[d]=[],h.delegateCount=0,f.setup&&f.setup.call(t,r,p,a)!==!1||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,l):h.push(l),mt.event.global[d]=!0)},remove:function(t,e,n,r,i){var o,a,s,u,c,l,f,h,d,p,v,g=Lt.hasData(t)&&Lt.get(t);if(g&&(u=g.events)){for(e=(e||"").match(Dt)||[""],c=e.length;c--;)if(s=ne.exec(e[c])||[],d=v=s[1],p=(s[2]||"").split(".").sort(),d){for(f=mt.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,h=u[d]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=h.length;o--;)l=h[o],!i&&v!==l.origType||n&&n.guid!==l.guid||s&&!s.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(h.splice(o,1),l.selector&&h.delegateCount--,f.remove&&f.remove.call(t,l));a&&!h.length&&(f.teardown&&f.teardown.call(t,p,g.handle)!==!1||mt.removeEvent(t,d,g.handle),delete u[d])}else for(d in u)mt.event.remove(t,d+e[c],n,r,!0);mt.isEmptyObject(u)&&Lt.remove(t,"handle events")}},dispatch:function(t){var e,n,r,i,o,a,s=mt.event.fix(t),u=new Array(arguments.length),c=(Lt.get(this,"events")||{})[s.type]||[],l=mt.event.special[s.type]||{};for(u[0]=s,e=1;e-1:mt.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s\x20\t\r\n\f]*)[^>]*)\/>/gi,ie=/\s*$/g;mt.extend({htmlPrefilter:function(t){return t.replace(re,"<$1>")},clone:function on(t,e,n){var r,i,o,a,on=t.cloneNode(!0),s=mt.contains(t.ownerDocument,t);if(!(vt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||mt.isXMLDoc(t)))for(a=w(on),o=w(t),r=0,i=o.length;r0&&_(a,!s&&w(t,"script")),on},cleanData:function(t){for(var e,n,r,i=mt.event.special,o=0;void 0!==(n=t[o]);o++)if(Bt(n)){if(e=n[Lt.expando]){if(e.events)for(r in e.events)i[r]?mt.event.remove(n,r):mt.removeEvent(n,r,e.handle);n[Lt.expando]=void 0}n[Rt.expando]&&(n[Rt.expando]=void 0)}}}),mt.fn.extend({detach:function(t){return M(this,t,!0)},remove:function(t){return M(this,t)},text:function(t){return Ft(this,function(t){return void 0===t?mt.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return D(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=$(this,t);e.appendChild(t)}})},prepend:function(){return D(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=$(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return D(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return D(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(mt.cleanData(w(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return mt.clone(this,t,e)})},html:function(t){return Ft(this,function(t){var e=this[0]||{},n=0,r=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!ie.test(t)&&!Yt[(Zt.exec(t)||["",""])[1].toLowerCase()]){t=mt.htmlPrefilter(t);try{for(;n1)}}),mt.Tween=H,H.prototype={constructor:H,init:function(t,e,n,r,i,o){this.elem=t,this.prop=n,this.easing=i||mt.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=o||(mt.cssNumber[n]?"":"px")},cur:function(){var t=H.propHooks[this.prop];return t&&t.get?t.get(this):H.propHooks._default.get(this)},run:function(t){var e,n=H.propHooks[this.prop];return this.options.duration?this.pos=e=mt.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):H.propHooks._default.set(this),this}},H.prototype.init.prototype=H.prototype,H.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=mt.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){mt.fx.step[t.prop]?mt.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[mt.cssProps[t.prop]]&&!mt.cssHooks[t.prop]?t.elem[t.prop]=t.now:mt.style(t.elem,t.prop,t.now+t.unit)}}},H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},mt.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},mt.fx=H.prototype.init,mt.fx.step={};var ge,me,ye=/^(?:toggle|show|hide)$/,be=/queueHooks$/;mt.Animation=mt.extend(G,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return y(n.elem,t,zt.exec(e),n),n}]},tweener:function(t,e){mt.isFunction(t)?(e=t,t=["*"]):t=t.match(Dt);for(var n,r=0,i=t.length;r1)},removeAttr:function(t){return this.each(function(){mt.removeAttr(this,t)})}}),mt.extend({attr:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof t.getAttribute?mt.prop(t,e,n):(1===o&&mt.isXMLDoc(t)||(i=mt.attrHooks[e.toLowerCase()]||(mt.expr.match.bool.test(e)?xe:void 0)),void 0!==n?null===n?void mt.removeAttr(t,e):i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):i&&"get"in i&&null!==(r=i.get(t,e))?r:(r=mt.find.attr(t,e),null==r?void 0:r))},attrHooks:{type:{set:function(t,e){if(!vt.radioValue&&"radio"===e&&mt.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,r=0,i=e&&e.match(Dt);if(i&&1===t.nodeType)for(;n=i[r++];)t.removeAttribute(n)}}),xe={set:function(t,e,n){return e===!1?mt.removeAttr(t,n):t.setAttribute(n,n),n}},mt.each(mt.expr.match.bool.source.match(/\w+/g),function(t,e){var n=we[e]||mt.find.attr;we[e]=function(t,e,r){var i,o,a=e.toLowerCase();return r||(o=we[a],we[a]=i,i=null!=n(t,e,r)?a:null,we[a]=o),i}});var _e=/^(?:input|select|textarea|button)$/i,Ce=/^(?:a|area)$/i;mt.fn.extend({prop:function(t,e){return Ft(this,mt.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[mt.propFix[t]||t]})}}),mt.extend({prop:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&mt.isXMLDoc(t)||(e=mt.propFix[e]||e,i=mt.propHooks[e]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:t[e]=n:i&&"get"in i&&null!==(r=i.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){var e=mt.find.attr(t,"tabindex");return e?parseInt(e,10):_e.test(t.nodeName)||Ce.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),vt.optSelected||(mt.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),mt.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){mt.propFix[this.toLowerCase()]=this});var ke=/[\t\r\n\f]/g;mt.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(mt.isFunction(t))return this.each(function(e){mt(this).addClass(t.call(this,e,Z(this)))});if("string"==typeof t&&t)for(e=t.match(Dt)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&(" "+i+" ").replace(ke," ")){for(a=0;o=e[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=mt.trim(r),i!==s&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(mt.isFunction(t))return this.each(function(e){mt(this).removeClass(t.call(this,e,Z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(Dt)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&(" "+i+" ").replace(ke," ")){for(a=0;o=e[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=mt.trim(r),i!==s&&n.setAttribute("class",s)}return this},toggleClass:function(t,e){var r="undefined"==typeof t?"undefined":n(t);return"boolean"==typeof e&&"string"===r?e?this.addClass(t):this.removeClass(t):mt.isFunction(t)?this.each(function(n){mt(this).toggleClass(t.call(this,n,Z(this),e),e)}):this.each(function(){var e,n,i,o;if("string"===r)for(n=0,i=mt(this),o=t.match(Dt)||[];e=o[n++];)i.hasClass(e)?i.removeClass(e):i.addClass(e);else void 0!==t&&"boolean"!==r||(e=Z(this),e&&Lt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":Lt.get(this,"__className__")||""))})},hasClass:function(t){var e,n,r=0;for(e=" "+t+" ";n=this[r++];)if(1===n.nodeType&&(" "+Z(n)+" ").replace(ke," ").indexOf(e)>-1)return!0;return!1}});var Te=/\r/g,Ae=/[\x20\t\r\n\f]+/g;mt.fn.extend({val:function(t){var e,n,r,i=this[0];{if(arguments.length)return r=mt.isFunction(t),this.each(function(n){var i;1===this.nodeType&&(i=r?t.call(this,n,mt(this).val()):t,null==i?i="":"number"==typeof i?i+="":mt.isArray(i)&&(i=mt.map(i,function(t){return null==t?"":t+""})),e=mt.valHooks[this.type]||mt.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))});if(i)return e=mt.valHooks[i.type]||mt.valHooks[i.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Te,""):null==n?"":n)}}}),mt.extend({valHooks:{option:{get:function(t){var e=mt.find.attr(t,"value");return null!=e?e:mt.trim(mt.text(t)).replace(Ae," ")}},select:{get:function(t){for(var e,n,r=t.options,i=t.selectedIndex,o="select-one"===t.type,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)&&(n=!0);return n||(t.selectedIndex=-1),o}}}}),mt.each(["radio","checkbox"],function(){mt.valHooks[this]={set:function(t,e){if(mt.isArray(e))return t.checked=mt.inArray(mt(t).val(),e)>-1}},vt.checkOn||(mt.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var Se=/^(?:focusinfocus|focusoutblur)$/;mt.extend(mt.event,{trigger:function(t,e,r,i){var a,s,u,c,l,f,h,d=[r||it],p=ht.call(t,"type")?t.type:t,v=ht.call(t,"namespace")?t.namespace.split("."):[];if(s=u=r=r||it,3!==r.nodeType&&8!==r.nodeType&&!Se.test(p+mt.event.triggered)&&(p.indexOf(".")>-1&&(v=p.split("."),p=v.shift(),v.sort()),l=p.indexOf(":")<0&&"on"+p,t=t[mt.expando]?t:new mt.Event(p,"object"===("undefined"==typeof t?"undefined":n(t))&&t),t.isTrigger=i?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),e=null==e?[t]:mt.makeArray(e,[t]),h=mt.event.special[p]||{},i||!h.trigger||h.trigger.apply(r,e)!==!1)){if(!i&&!h.noBubble&&!mt.isWindow(r)){for(c=h.delegateType||p,Se.test(c+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(r.ownerDocument||it)&&d.push(u.defaultView||u.parentWindow||o)}for(a=0;(s=d[a++])&&!t.isPropagationStopped();)t.type=a>1?c:h.bindType||p,f=(Lt.get(s,"events")||{})[t.type]&&Lt.get(s,"handle"),f&&f.apply(s,e),f=l&&s[l],f&&f.apply&&Bt(s)&&(t.result=f.apply(s,e),t.result===!1&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||h._default&&h._default.apply(d.pop(),e)!==!1||!Bt(r)||l&&mt.isFunction(r[p])&&!mt.isWindow(r)&&(u=r[l],u&&(r[l]=null),mt.event.triggered=p,r[p](),mt.event.triggered=void 0,u&&(r[l]=u)),t.result}},simulate:function(t,e,n){var r=mt.extend(new mt.Event,n,{type:t,isSimulated:!0});mt.event.trigger(r,null,e)}}),mt.fn.extend({trigger:function(t,e){return this.each(function(){mt.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];if(n)return mt.event.trigger(t,e,n,!0)}}),mt.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(t,e){mt.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),mt.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),vt.focusin="onfocusin"in o,vt.focusin||mt.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){mt.event.simulate(e,t.target,mt.event.fix(t))};mt.event.special[e]={setup:function(){var r=this.ownerDocument||this,i=Lt.access(r,e);i||r.addEventListener(t,n,!0),Lt.access(r,e,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Lt.access(r,e)-1;i?Lt.access(r,e,i):(r.removeEventListener(t,n,!0),Lt.remove(r,e))}}});var $e=o.location,Ee=mt.now(),je=/\?/;mt.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new o.DOMParser).parseFromString(t,"text/xml")}catch(n){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||mt.error("Invalid XML: "+t),e};var Oe=/\[\]$/,Ne=/\r?\n/g,De=/^(?:submit|button|image|reset|file)$/i,Me=/^(?:input|select|textarea|keygen)/i;mt.param=function(t,e){var n,r=[],i=function(t,e){var n=mt.isFunction(e)?e():e;r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(mt.isArray(t)||t.jquery&&!mt.isPlainObject(t))mt.each(t,function(){i(this.name,this.value)});else for(n in t)J(n,t[n],e,i);return r.join("&")},mt.fn.extend({serialize:function(){return mt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=mt.prop(this,"elements");return t?mt.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!mt(this).is(":disabled")&&Me.test(this.nodeName)&&!De.test(t)&&(this.checked||!Gt.test(t))}).map(function(t,e){var n=mt(this).val();return null==n?null:mt.isArray(n)?mt.map(n,function(t){return{name:e.name,value:t.replace(Ne,"\r\n")}}):{name:e.name,value:n.replace(Ne,"\r\n")}}).get()}});var Pe=/%20/g,Fe=/#.*$/,Be=/([?&])_=[^&]*/,Le=/^(.*?):[ \t]*([^\r\n]*)$/gm,Re=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ie=/^(?:GET|HEAD)$/,He=/^\/\//,qe={},ze={},Ve="*/".concat("*"),Ue=it.createElement("a");Ue.href=$e.href,mt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:$e.href,type:"GET",isLocal:Re.test($e.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ve,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":mt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?K(K(t,mt.ajaxSettings),e):K(mt.ajaxSettings,t)},ajaxPrefilter:Y(qe),ajaxTransport:Y(ze),ajax:function(t,e){function r(t,e,n,r){var u,l,d,p,w,_=e;f||(f=!0,c&&o.clearTimeout(c),i=void 0,s=r||"",k.readyState=t>0?4:0,u=t>=200&&t<300||304===t,n&&(p=tt(v,k,n)),p=et(v,p,k,u),u?(v.ifModified&&(w=k.getResponseHeader("Last-Modified"),w&&(mt.lastModified[a]=w),w=k.getResponseHeader("etag"),w&&(mt.etag[a]=w)),204===t||"HEAD"===v.type?_="nocontent":304===t?_="notmodified":(_=p.state,l=p.data,d=p.error,u=!d)):(d=_,!t&&_||(_="error",t<0&&(t=0))),k.status=t,k.statusText=(e||_)+"",u?y.resolveWith(g,[l,_,k]):y.rejectWith(g,[k,_,d]),k.statusCode(x),x=void 0,h&&m.trigger(u?"ajaxSuccess":"ajaxError",[k,v,u?l:d]),b.fireWith(g,[k,_]),h&&(m.trigger("ajaxComplete",[k,v]),--mt.active||mt.event.trigger("ajaxStop")))}"object"===("undefined"==typeof t?"undefined":n(t))&&(e=t,t=void 0),e=e||{};var i,a,s,u,c,l,f,h,d,p,v=mt.ajaxSetup({},e),g=v.context||v,m=v.context&&(g.nodeType||g.jquery)?mt(g):mt.event,y=mt.Deferred(),b=mt.Callbacks("once memory"),x=v.statusCode||{},w={},_={},C="canceled",k={readyState:0,getResponseHeader:function(t){var e;if(f){if(!u)for(u={};e=Le.exec(s);)u[e[1].toLowerCase()]=e[2];e=u[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return f?s:null},setRequestHeader:function(t,e){return null==f&&(t=_[t.toLowerCase()]=_[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==f&&(v.mimeType=t),this},statusCode:function(t){var e;if(t)if(f)k.always(t[k.status]);else for(e in t)x[e]=[x[e],t[e]];return this},abort:function(t){var e=t||C;return i&&i.abort(e),r(0,e),this}};if(y.promise(k),v.url=((t||v.url||$e.href)+"").replace(He,$e.protocol+"//"),v.type=e.method||e.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(Dt)||[""],null==v.crossDomain){l=it.createElement("a");try{l.href=v.url,l.href=l.href,v.crossDomain=Ue.protocol+"//"+Ue.host!=l.protocol+"//"+l.host}catch(T){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=mt.param(v.data,v.traditional)),Q(qe,v,e,k),f)return k;h=mt.event&&v.global,h&&0===mt.active++&&mt.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ie.test(v.type),a=v.url.replace(Fe,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Pe,"+")):(p=v.url.slice(a.length),v.data&&(a+=(je.test(a)?"&":"?")+v.data,delete v.data),v.cache===!1&&(a=a.replace(Be,""),p=(je.test(a)?"&":"?")+"_="+Ee++ +p),v.url=a+p),v.ifModified&&(mt.lastModified[a]&&k.setRequestHeader("If-Modified-Since",mt.lastModified[a]),mt.etag[a]&&k.setRequestHeader("If-None-Match",mt.etag[a])),(v.data&&v.hasContent&&v.contentType!==!1||e.contentType)&&k.setRequestHeader("Content-Type",v.contentType),k.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Ve+"; q=0.01":""):v.accepts["*"]);for(d in v.headers)k.setRequestHeader(d,v.headers[d]);if(v.beforeSend&&(v.beforeSend.call(g,k,v)===!1||f))return k.abort();if(C="abort",b.add(v.complete),k.done(v.success),k.fail(v.error),i=Q(ze,v,e,k)){if(k.readyState=1,h&&m.trigger("ajaxSend",[k,v]),f)return k;v.async&&v.timeout>0&&(c=o.setTimeout(function(){k.abort("timeout")},v.timeout));try{f=!1,i.send(w,r)}catch(T){if(f)throw T;r(-1,T)}}else r(-1,"No Transport");return k},getJSON:function(t,e,n){return mt.get(t,e,n,"json")},getScript:function(t,e){return mt.get(t,void 0,e,"script")}}),mt.each(["get","post"],function(t,e){mt[e]=function(t,n,r,i){return mt.isFunction(n)&&(i=i||r,r=n,n=void 0),mt.ajax(mt.extend({url:t,type:e,dataType:i,data:n,success:r},mt.isPlainObject(t)&&t))}}),mt._evalUrl=function(t){return mt.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},mt.fn.extend({wrapAll:function(t){var e;return this[0]&&(mt.isFunction(t)&&(t=t.call(this[0])),e=mt(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return mt.isFunction(t)?this.each(function(e){mt(this).wrapInner(t.call(this,e))}):this.each(function(){var e=mt(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=mt.isFunction(t);return this.each(function(n){mt(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){mt(this).replaceWith(this.childNodes); -}),this}}),mt.expr.pseudos.hidden=function(t){return!mt.expr.pseudos.visible(t)},mt.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},mt.ajaxSettings.xhr=function(){try{return new o.XMLHttpRequest}catch(t){}};var We={0:200,1223:204},Xe=mt.ajaxSettings.xhr();vt.cors=!!Xe&&"withCredentials"in Xe,vt.ajax=Xe=!!Xe,mt.ajaxTransport(function(t){var e,n;if(vt.cors||Xe&&!t.crossDomain)return{send:function(r,i){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)s.setRequestHeader(a,r[a]);e=function(t){return function(){e&&(e=n=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===t?s.abort():"error"===t?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(We[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=e(),n=s.onerror=e("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&o.setTimeout(function(){e&&n()})},e=e("abort");try{s.send(t.hasContent&&t.data||null)}catch(u){if(e)throw u}},abort:function(){e&&e()}}}),mt.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),mt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return mt.globalEval(t),t}}}),mt.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),mt.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(r,i){e=mt("\n\n\n\n\n/** WEBPACK FOOTER **\n ** Cutout.vue?abd5db1a\n **/","\n\n\n/** WEBPACK FOOTER **\n ** MergeTool.vue?66eb9b8f\n **/","\n\n\n\n/** WEBPACK FOOTER **\n ** Taglist.vue?7f61d5d4\n **/","\n\n\n \n\n\n/** WEBPACK FOOTER **\n ** Typeahead.vue?1cba3fba\n **/","\n\n\n\n\n\n/** WEBPACK FOOTER **\n ** Zoomview.vue?69033152\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/css-loader/lib/css-base.js\n **/","'use strict';\n\nvar assign = require('es5-ext/object/assign')\n , normalizeOpts = require('es5-ext/object/normalize-options')\n , isCallable = require('es5-ext/object/is-callable')\n , contains = require('es5-ext/string/#/contains')\n\n , d;\n\nd = module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif ((arguments.length < 2) || (typeof dscr !== 'string')) {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (dscr == null) {\n\t\tc = w = true;\n\t\te = false;\n\t} else {\n\t\tc = contains.call(dscr, 'c');\n\t\te = contains.call(dscr, 'e');\n\t\tw = contains.call(dscr, 'w');\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== 'string') {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (get == null) {\n\t\tget = undefined;\n\t} else if (!isCallable(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (set == null) {\n\t\tset = undefined;\n\t} else if (!isCallable(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (dscr == null) {\n\t\tc = true;\n\t\te = false;\n\t} else {\n\t\tc = contains.call(dscr, 'c');\n\t\te = contains.call(dscr, 'e');\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/d/index.js\n **/","'use strict';\n\nmodule.exports = require('./is-implemented')()\n\t? Object.assign\n\t: require('./shim');\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/assign/index.js\n **/","'use strict';\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== 'function') return false;\n\tobj = { foo: 'raz' };\n\tassign(obj, { bar: 'dwa' }, { trzy: 'trzy' });\n\treturn (obj.foo + obj.bar + obj.trzy) === 'razdwatrzy';\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/assign/is-implemented.js\n **/","'use strict';\n\nvar keys = require('../keys')\n , value = require('../valid-value')\n\n , max = Math.max;\n\nmodule.exports = function (dest, src/*, …srcn*/) {\n\tvar error, i, l = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry { dest[key] = src[key]; } catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < l; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/assign/shim.js\n **/","// Deprecated\n\n'use strict';\n\nmodule.exports = function (obj) { return typeof obj === 'function'; };\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/is-callable.js\n **/","'use strict';\n\nmodule.exports = require('./is-implemented')()\n\t? Object.keys\n\t: require('./shim');\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/keys/index.js\n **/","'use strict';\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys('primitive');\n\t\treturn true;\n\t} catch (e) { return false; }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/keys/is-implemented.js\n **/","'use strict';\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) {\n\treturn keys(object == null ? object : Object(object));\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/keys/shim.js\n **/","'use strict';\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\nmodule.exports = function (options/*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (options == null) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/normalize-options.js\n **/","'use strict';\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== 'function') throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/valid-callable.js\n **/","'use strict';\n\nmodule.exports = function (value) {\n\tif (value == null) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/object/valid-value.js\n **/","'use strict';\n\nmodule.exports = require('./is-implemented')()\n\t? String.prototype.contains\n\t: require('./shim');\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/string/#/contains/index.js\n **/","'use strict';\n\nvar str = 'razdwatrzy';\n\nmodule.exports = function () {\n\tif (typeof str.contains !== 'function') return false;\n\treturn ((str.contains('dwa') === true) && (str.contains('foo') === false));\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/string/#/contains/is-implemented.js\n **/","'use strict';\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/es5-ext/string/#/contains/shim.js\n **/","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/event-emitter/index.js\n **/","/*!\n * vue-resource v0.9.1\n * https://github.com/vuejs/vue-resource\n * Released under the MIT License.\n */\n\n'use strict';\n\n/**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\n\nvar RESOLVED = 0;\nvar REJECTED = 1;\nvar PENDING = 2;\n\nfunction Promise$2(executor) {\n\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n\n var promise = this;\n\n try {\n executor(function (x) {\n promise.resolve(x);\n }, function (r) {\n promise.reject(r);\n });\n } catch (e) {\n promise.reject(e);\n }\n}\n\nPromise$2.reject = function (r) {\n return new Promise$2(function (resolve, reject) {\n reject(r);\n });\n};\n\nPromise$2.resolve = function (x) {\n return new Promise$2(function (resolve, reject) {\n resolve(x);\n });\n};\n\nPromise$2.all = function all(iterable) {\n return new Promise$2(function (resolve, reject) {\n var count = 0,\n result = [];\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$2.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n};\n\nPromise$2.race = function race(iterable) {\n return new Promise$2(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$2.resolve(iterable[i]).then(resolve, reject);\n }\n });\n};\n\nvar p$1 = Promise$2.prototype;\n\np$1.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x['then'];\n\n if (x !== null && typeof x === 'object' && typeof then === 'function') {\n then.call(x, function (x) {\n if (!called) {\n promise.resolve(x);\n }\n called = true;\n }, function (r) {\n if (!called) {\n promise.reject(r);\n }\n called = true;\n });\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n};\n\np$1.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n};\n\np$1.notify = function notify() {\n var promise = this;\n\n nextTick(function () {\n if (promise.state !== PENDING) {\n while (promise.deferred.length) {\n var deferred = promise.deferred.shift(),\n onResolved = deferred[0],\n onRejected = deferred[1],\n resolve = deferred[2],\n reject = deferred[3];\n\n try {\n if (promise.state === RESOLVED) {\n if (typeof onResolved === 'function') {\n resolve(onResolved.call(undefined, promise.value));\n } else {\n resolve(promise.value);\n }\n } else if (promise.state === REJECTED) {\n if (typeof onRejected === 'function') {\n resolve(onRejected.call(undefined, promise.value));\n } else {\n reject(promise.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n};\n\np$1.then = function then(onResolved, onRejected) {\n var promise = this;\n\n return new Promise$2(function (resolve, reject) {\n promise.deferred.push([onResolved, onRejected, resolve, reject]);\n promise.notify();\n });\n};\n\np$1.catch = function (onRejected) {\n return this.then(undefined, onRejected);\n};\n\nvar PromiseObj = window.Promise || Promise$2;\n\nfunction Promise$1(executor, context) {\n\n if (executor instanceof PromiseObj) {\n this.promise = executor;\n } else {\n this.promise = new PromiseObj(executor.bind(context));\n }\n\n this.context = context;\n}\n\nPromise$1.all = function (iterable, context) {\n return new Promise$1(PromiseObj.all(iterable), context);\n};\n\nPromise$1.resolve = function (value, context) {\n return new Promise$1(PromiseObj.resolve(value), context);\n};\n\nPromise$1.reject = function (reason, context) {\n return new Promise$1(PromiseObj.reject(reason), context);\n};\n\nPromise$1.race = function (iterable, context) {\n return new Promise$1(PromiseObj.race(iterable), context);\n};\n\nvar p = Promise$1.prototype;\n\np.bind = function (context) {\n this.context = context;\n return this;\n};\n\np.then = function (fulfilled, rejected) {\n\n if (fulfilled && fulfilled.bind && this.context) {\n fulfilled = fulfilled.bind(this.context);\n }\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new Promise$1(this.promise.then(fulfilled, rejected), this.context);\n};\n\np.catch = function (rejected) {\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new Promise$1(this.promise.catch(rejected), this.context);\n};\n\np.finally = function (callback) {\n\n return this.then(function (value) {\n callback.call(this);\n return value;\n }, function (reason) {\n callback.call(this);\n return PromiseObj.reject(reason);\n });\n};\n\nvar debug = false;\nvar util = {};\nvar array = [];\nfunction Util (Vue) {\n util = Vue.util;\n debug = Vue.config.debug || !Vue.config.silent;\n}\n\nfunction warn(msg) {\n if (typeof console !== 'undefined' && debug) {\n console.warn('[VueResource warn]: ' + msg);\n }\n}\n\nfunction error(msg) {\n if (typeof console !== 'undefined') {\n console.error(msg);\n }\n}\n\nfunction nextTick(cb, ctx) {\n return util.nextTick(cb, ctx);\n}\n\nfunction trim(str) {\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nvar isArray = Array.isArray;\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n\nfunction isBoolean(val) {\n return val === true || val === false;\n}\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n}\n\nfunction isFormData(obj) {\n return typeof FormData !== 'undefined' && obj instanceof FormData;\n}\n\nfunction when(value, fulfilled, rejected) {\n\n var promise = Promise$1.resolve(value);\n\n if (arguments.length < 2) {\n return promise;\n }\n\n return promise.then(fulfilled, rejected);\n}\n\nfunction options(fn, obj, opts) {\n\n opts = opts || {};\n\n if (isFunction(opts)) {\n opts = opts.call(obj);\n }\n\n return merge(fn.bind({ $vm: obj, $options: opts }), fn, { $options: opts });\n}\n\nfunction each(obj, iterator) {\n\n var i, key;\n\n if (typeof obj.length == 'number') {\n for (i = 0; i < obj.length; i++) {\n iterator.call(obj[i], obj[i], i);\n }\n } else if (isObject(obj)) {\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator.call(obj[key], obj[key], key);\n }\n }\n }\n\n return obj;\n}\n\nvar assign = Object.assign || _assign;\n\nfunction merge(target) {\n\n var args = array.slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source, true);\n });\n\n return target;\n}\n\nfunction defaults(target) {\n\n var args = array.slice.call(arguments, 1);\n\n args.forEach(function (source) {\n\n for (var key in source) {\n if (target[key] === undefined) {\n target[key] = source[key];\n }\n }\n });\n\n return target;\n}\n\nfunction _assign(target) {\n\n var args = array.slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source);\n });\n\n return target;\n}\n\nfunction _merge(target, source, deep) {\n for (var key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n _merge(target[key], source[key], deep);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n}\n\nfunction root (options, next) {\n\n var url = next(options);\n\n if (isString(options.root) && !url.match(/^(https?:)?\\//)) {\n url = options.root + '/' + url;\n }\n\n return url;\n}\n\nfunction query (options, next) {\n\n var urlParams = Object.keys(Url.options.params),\n query = {},\n url = next(options);\n\n each(options.params, function (value, key) {\n if (urlParams.indexOf(key) === -1) {\n query[key] = value;\n }\n });\n\n query = Url.params(query);\n\n if (query) {\n url += (url.indexOf('?') == -1 ? '?' : '&') + query;\n }\n\n return url;\n}\n\n/**\n * URL Template v2.0.6 (https://github.com/bramstein/url-template)\n */\n\nfunction expand(url, params, variables) {\n\n var tmpl = parse(url),\n expanded = tmpl.expand(params);\n\n if (variables) {\n variables.push.apply(variables, tmpl.vars);\n }\n\n return expanded;\n}\n\nfunction parse(template) {\n\n var operators = ['+', '#', '.', '/', ';', '?', '&'],\n variables = [];\n\n return {\n vars: variables,\n expand: function (context) {\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n\n var operator = null,\n values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n variables.push(tmp[1]);\n });\n\n if (operator && operator !== '+') {\n\n var separator = ',';\n\n if (operator === '?') {\n separator = '&';\n } else if (operator !== '#') {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : '') + values.join(separator);\n } else {\n return values.join(',');\n }\n } else {\n return encodeReserved(literal);\n }\n });\n }\n };\n}\n\nfunction getValues(context, operator, key, modifier) {\n\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== '') {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n value = value.toString();\n\n if (modifier && modifier !== '*') {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n } else {\n if (modifier === '*') {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n var tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeURIComponent(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeURIComponent(key) + '=' + tmp.join(','));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(','));\n }\n }\n }\n } else {\n if (operator === ';') {\n result.push(encodeURIComponent(key));\n } else if (value === '' && (operator === '&' || operator === '?')) {\n result.push(encodeURIComponent(key) + '=');\n } else if (value === '') {\n result.push('');\n }\n }\n\n return result;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === ';' || operator === '&' || operator === '?';\n}\n\nfunction encodeValue(operator, value, key) {\n\n value = operator === '+' || operator === '#' ? encodeReserved(value) : encodeURIComponent(value);\n\n if (key) {\n return encodeURIComponent(key) + '=' + value;\n } else {\n return value;\n }\n}\n\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part);\n }\n return part;\n }).join('');\n}\n\nfunction template (options) {\n\n var variables = [],\n url = expand(options.url, options.params, variables);\n\n variables.forEach(function (key) {\n delete options.params[key];\n });\n\n return url;\n}\n\n/**\n * Service for URL templating.\n */\n\nvar ie = document.documentMode;\nvar el = document.createElement('a');\n\nfunction Url(url, params) {\n\n var self = this || {},\n options = url,\n transform;\n\n if (isString(url)) {\n options = { url: url, params: params };\n }\n\n options = merge({}, Url.options, self.$options, options);\n\n Url.transforms.forEach(function (handler) {\n transform = factory(handler, transform, self.$vm);\n });\n\n return transform(options);\n}\n\n/**\n * Url options.\n */\n\nUrl.options = {\n url: '',\n root: null,\n params: {}\n};\n\n/**\n * Url transforms.\n */\n\nUrl.transforms = [template, query, root];\n\n/**\n * Encodes a Url parameter string.\n *\n * @param {Object} obj\n */\n\nUrl.params = function (obj) {\n\n var params = [],\n escape = encodeURIComponent;\n\n params.add = function (key, value) {\n\n if (isFunction(value)) {\n value = value();\n }\n\n if (value === null) {\n value = '';\n }\n\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj);\n\n return params.join('&').replace(/%20/g, '+');\n};\n\n/**\n * Parse a URL and return its components.\n *\n * @param {String} url\n */\n\nUrl.parse = function (url) {\n\n if (ie) {\n el.href = url;\n url = el.href;\n }\n\n el.href = url;\n\n return {\n href: el.href,\n protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',\n port: el.port,\n host: el.host,\n hostname: el.hostname,\n pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,\n search: el.search ? el.search.replace(/^\\?/, '') : '',\n hash: el.hash ? el.hash.replace(/^#/, '') : ''\n };\n};\n\nfunction factory(handler, next, vm) {\n return function (options) {\n return handler.call(vm, options, next);\n };\n}\n\nfunction serialize(params, obj, scope) {\n\n var array = isArray(obj),\n plain = isPlainObject(obj),\n hash;\n\n each(obj, function (value, key) {\n\n hash = isObject(value) || isArray(value);\n\n if (scope) {\n key = scope + '[' + (plain || hash ? key : '') + ']';\n }\n\n if (!scope && array) {\n params.add(value.name, value.value);\n } else if (hash) {\n serialize(params, value, key);\n } else {\n params.add(key, value);\n }\n });\n}\n\nfunction xdrClient (request) {\n return new Promise$1(function (resolve) {\n\n var xdr = new XDomainRequest(),\n handler = function (event) {\n\n var response = request.respondWith(xdr.responseText, {\n status: xdr.status,\n statusText: xdr.statusText\n });\n\n resolve(response);\n };\n\n request.abort = function () {\n return xdr.abort();\n };\n\n xdr.open(request.method, request.getUrl(), true);\n xdr.timeout = 0;\n xdr.onload = handler;\n xdr.onerror = handler;\n xdr.ontimeout = function () {};\n xdr.onprogress = function () {};\n xdr.send(request.getBody());\n });\n}\n\nvar ORIGIN_URL = Url.parse(location.href);\nvar SUPPORTS_CORS = 'withCredentials' in new XMLHttpRequest();\n\nfunction cors (request, next) {\n\n if (!isBoolean(request.crossOrigin) && crossOrigin(request)) {\n request.crossOrigin = true;\n }\n\n if (request.crossOrigin) {\n\n if (!SUPPORTS_CORS) {\n request.client = xdrClient;\n }\n\n delete request.emulateHTTP;\n }\n\n next();\n}\n\nfunction crossOrigin(request) {\n\n var requestUrl = Url.parse(Url(request));\n\n return requestUrl.protocol !== ORIGIN_URL.protocol || requestUrl.host !== ORIGIN_URL.host;\n}\n\nfunction body (request, next) {\n\n if (request.emulateJSON && isPlainObject(request.body)) {\n request.body = Url.params(request.body);\n request.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n\n if (isFormData(request.body)) {\n delete request.headers['Content-Type'];\n }\n\n if (isPlainObject(request.body)) {\n request.body = JSON.stringify(request.body);\n }\n\n next(function (response) {\n\n var contentType = response.headers['Content-Type'];\n\n if (isString(contentType) && contentType.indexOf('application/json') === 0) {\n\n try {\n response.data = response.json();\n } catch (e) {\n response.data = null;\n }\n } else {\n response.data = response.text();\n }\n });\n}\n\nfunction jsonpClient (request) {\n return new Promise$1(function (resolve) {\n\n var name = request.jsonp || 'callback',\n callback = '_jsonp' + Math.random().toString(36).substr(2),\n body = null,\n handler,\n script;\n\n handler = function (event) {\n\n var status = 0;\n\n if (event.type === 'load' && body !== null) {\n status = 200;\n } else if (event.type === 'error') {\n status = 404;\n }\n\n resolve(request.respondWith(body, { status: status }));\n\n delete window[callback];\n document.body.removeChild(script);\n };\n\n request.params[name] = callback;\n\n window[callback] = function (result) {\n body = JSON.stringify(result);\n };\n\n script = document.createElement('script');\n script.src = request.getUrl();\n script.type = 'text/javascript';\n script.async = true;\n script.onload = handler;\n script.onerror = handler;\n\n document.body.appendChild(script);\n });\n}\n\nfunction jsonp (request, next) {\n\n if (request.method == 'JSONP') {\n request.client = jsonpClient;\n }\n\n next(function (response) {\n\n if (request.method == 'JSONP') {\n response.data = response.json();\n }\n });\n}\n\nfunction before (request, next) {\n\n if (isFunction(request.before)) {\n request.before.call(this, request);\n }\n\n next();\n}\n\n/**\n * HTTP method override Interceptor.\n */\n\nfunction method (request, next) {\n\n if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {\n request.headers['X-HTTP-Method-Override'] = request.method;\n request.method = 'POST';\n }\n\n next();\n}\n\nfunction header (request, next) {\n\n request.method = request.method.toUpperCase();\n request.headers = assign({}, Http.headers.common, !request.crossOrigin ? Http.headers.custom : {}, Http.headers[request.method.toLowerCase()], request.headers);\n\n next();\n}\n\n/**\n * Timeout Interceptor.\n */\n\nfunction timeout (request, next) {\n\n var timeout;\n\n if (request.timeout) {\n timeout = setTimeout(function () {\n request.cancel();\n }, request.timeout);\n }\n\n next(function (response) {\n\n clearTimeout(timeout);\n });\n}\n\nfunction xhrClient (request) {\n return new Promise$1(function (resolve) {\n\n var xhr = new XMLHttpRequest(),\n handler = function (event) {\n\n var response = request.respondWith('response' in xhr ? xhr.response : xhr.responseText, {\n status: xhr.status === 1223 ? 204 : xhr.status, // IE9 status bug\n statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText),\n headers: parseHeaders(xhr.getAllResponseHeaders())\n });\n\n resolve(response);\n };\n\n request.abort = function () {\n return xhr.abort();\n };\n\n xhr.open(request.method, request.getUrl(), true);\n xhr.timeout = 0;\n xhr.onload = handler;\n xhr.onerror = handler;\n\n if (request.progress) {\n if (request.method === 'GET') {\n xhr.addEventListener('progress', request.progress);\n } else if (/^(POST|PUT)$/i.test(request.method)) {\n xhr.upload.addEventListener('progress', request.progress);\n }\n }\n\n if (request.credentials === true) {\n xhr.withCredentials = true;\n }\n\n each(request.headers || {}, function (value, header) {\n xhr.setRequestHeader(header, value);\n });\n\n xhr.send(request.getBody());\n });\n}\n\nfunction parseHeaders(str) {\n\n var headers = {},\n value,\n name,\n i;\n\n each(trim(str).split('\\n'), function (row) {\n\n i = row.indexOf(':');\n name = trim(row.slice(0, i));\n value = trim(row.slice(i + 1));\n\n if (headers[name]) {\n\n if (isArray(headers[name])) {\n headers[name].push(value);\n } else {\n headers[name] = [headers[name], value];\n }\n } else {\n\n headers[name] = value;\n }\n });\n\n return headers;\n}\n\nfunction Client (context) {\n\n var reqHandlers = [sendRequest],\n resHandlers = [],\n handler;\n\n if (!isObject(context)) {\n context = null;\n }\n\n function Client(request) {\n return new Promise$1(function (resolve) {\n\n function exec() {\n\n handler = reqHandlers.pop();\n\n if (isFunction(handler)) {\n handler.call(context, request, next);\n } else {\n warn('Invalid interceptor of type ' + typeof handler + ', must be a function');\n next();\n }\n }\n\n function next(response) {\n when(response, function (response) {\n\n if (isFunction(response)) {\n\n resHandlers.unshift(response);\n } else if (isObject(response)) {\n\n resHandlers.forEach(function (handler) {\n handler.call(context, response);\n });\n\n resolve(response);\n\n return;\n }\n\n exec();\n });\n }\n\n exec();\n }, context);\n }\n\n Client.use = function (handler) {\n reqHandlers.push(handler);\n };\n\n return Client;\n}\n\nfunction sendRequest(request, resolve) {\n\n var client = request.client || xhrClient;\n\n resolve(client(request));\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n/**\n * HTTP Response.\n */\n\nvar Response = function () {\n function Response(body, _ref) {\n var url = _ref.url;\n var headers = _ref.headers;\n var status = _ref.status;\n var statusText = _ref.statusText;\n classCallCheck(this, Response);\n\n\n this.url = url;\n this.body = body;\n this.headers = headers || {};\n this.status = status || 0;\n this.statusText = statusText || '';\n this.ok = status >= 200 && status < 300;\n }\n\n Response.prototype.text = function text() {\n return this.body;\n };\n\n Response.prototype.blob = function blob() {\n return new Blob([this.body]);\n };\n\n Response.prototype.json = function json() {\n return JSON.parse(this.body);\n };\n\n return Response;\n}();\n\nvar Request = function () {\n function Request(options) {\n classCallCheck(this, Request);\n\n\n this.method = 'GET';\n this.body = null;\n this.params = {};\n this.headers = {};\n\n assign(this, options);\n }\n\n Request.prototype.getUrl = function getUrl() {\n return Url(this);\n };\n\n Request.prototype.getBody = function getBody() {\n return this.body;\n };\n\n Request.prototype.respondWith = function respondWith(body, options) {\n return new Response(body, assign(options || {}, { url: this.getUrl() }));\n };\n\n return Request;\n}();\n\n/**\n * Service for sending network requests.\n */\n\nvar CUSTOM_HEADERS = { 'X-Requested-With': 'XMLHttpRequest' };\nvar COMMON_HEADERS = { 'Accept': 'application/json, text/plain, */*' };\nvar JSON_CONTENT_TYPE = { 'Content-Type': 'application/json;charset=utf-8' };\n\nfunction Http(options) {\n\n var self = this || {},\n client = Client(self.$vm);\n\n defaults(options || {}, self.$options, Http.options);\n\n Http.interceptors.forEach(function (handler) {\n client.use(handler);\n });\n\n return client(new Request(options)).then(function (response) {\n\n return response.ok ? response : Promise$1.reject(response);\n }, function (response) {\n\n if (response instanceof Error) {\n error(response);\n }\n\n return Promise$1.reject(response);\n });\n}\n\nHttp.options = {};\n\nHttp.headers = {\n put: JSON_CONTENT_TYPE,\n post: JSON_CONTENT_TYPE,\n patch: JSON_CONTENT_TYPE,\n delete: JSON_CONTENT_TYPE,\n custom: CUSTOM_HEADERS,\n common: COMMON_HEADERS\n};\n\nHttp.interceptors = [before, timeout, method, body, jsonp, header, cors];\n\n['get', 'delete', 'head', 'jsonp'].forEach(function (method) {\n\n Http[method] = function (url, options) {\n return this(assign(options || {}, { url: url, method: method }));\n };\n});\n\n['post', 'put', 'patch'].forEach(function (method) {\n\n Http[method] = function (url, body, options) {\n return this(assign(options || {}, { url: url, method: method, body: body }));\n };\n});\n\nfunction Resource(url, params, actions, options) {\n\n var self = this || {},\n resource = {};\n\n actions = assign({}, Resource.actions, actions);\n\n each(actions, function (action, name) {\n\n action = merge({ url: url, params: params || {} }, options, action);\n\n resource[name] = function () {\n return (self.$http || Http)(opts(action, arguments));\n };\n });\n\n return resource;\n}\n\nfunction opts(action, args) {\n\n var options = assign({}, action),\n params = {},\n body;\n\n switch (args.length) {\n\n case 2:\n\n params = args[0];\n body = args[1];\n\n break;\n\n case 1:\n\n if (/^(POST|PUT|PATCH)$/i.test(options.method)) {\n body = args[0];\n } else {\n params = args[0];\n }\n\n break;\n\n case 0:\n\n break;\n\n default:\n\n throw 'Expected up to 4 arguments [params, body], got ' + args.length + ' arguments';\n }\n\n options.body = body;\n options.params = assign({}, options.params, params);\n\n return options;\n}\n\nResource.actions = {\n\n get: { method: 'GET' },\n save: { method: 'POST' },\n query: { method: 'GET' },\n update: { method: 'PUT' },\n remove: { method: 'DELETE' },\n delete: { method: 'DELETE' }\n\n};\n\nfunction plugin(Vue) {\n\n if (plugin.installed) {\n return;\n }\n\n Util(Vue);\n\n Vue.url = Url;\n Vue.http = Http;\n Vue.resource = Resource;\n Vue.Promise = Promise$1;\n\n Object.defineProperties(Vue.prototype, {\n\n $url: {\n get: function () {\n return options(Vue.url, this, this.$options.url);\n }\n },\n\n $http: {\n get: function () {\n return options(Vue.http, this, this.$options.http);\n }\n },\n\n $resource: {\n get: function () {\n return Vue.resource.bind(this);\n }\n },\n\n $promise: {\n get: function () {\n var _this = this;\n\n return function (executor) {\n return new Vue.Promise(executor, _this);\n };\n }\n }\n\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(plugin);\n}\n\nmodule.exports = plugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/vue-resource/dist/vue-resource.common.js\n **/","'use strict';\n\nvar vue = require('vue');\n\nvar main = {\n data () {\n return {\n items: [],\n query: '',\n current: -1,\n loading: false,\n queryParamName: 'q'\n }\n },\n\n computed: {\n hasItems () {\n return this.items.length > 0\n },\n\n isEmpty () {\n return !this.query\n },\n\n isDirty () {\n return !!this.query\n }\n },\n\n methods: {\n update () {\n if (!this.query) {\n return this.reset()\n }\n\n if (this.minChars && this.query.length < this.minChars) {\n return\n }\n\n this.loading = true\n\n this.fetch().then((response) => {\n if (this.query) {\n let data = response.data\n data = this.prepareResponseData ? this.prepareResponseData(data) : data\n this.items = this.limit ? data.slice(0, this.limit) : data\n this.current = -1\n this.loading = false\n }\n })\n },\n\n fetch () {\n if (!this.$http) {\n return vue.util.warn('You need to install the `vue-resource` plugin', this)\n }\n\n if (!this.src) {\n return vue.util.warn('You need to set the `src` property', this)\n }\n\n let queryParam = {\n [this.queryParamName]: this.query\n }\n\n return this.$http.get(this.src, Object.assign(queryParam, this.data))\n },\n\n reset () {\n this.items = []\n this.query = ''\n this.loading = false\n },\n\n setActive (index) {\n this.current = index\n },\n\n activeClass (index) {\n return {\n active: this.current == index\n }\n },\n\n hit () {\n if (this.current !== -1) {\n this.onHit(this.items[this.current])\n }\n },\n\n up () {\n if (this.current > 0) {\n this.current--\n } else if (this.current == -1) {\n this.current = this.items.length - 1\n } else {\n this.current = -1\n }\n },\n\n down () {\n if (this.current < this.items.length-1) {\n this.current++\n } else {\n this.current = -1\n }\n },\n\n onHit () {\n vue.util.warn('You need to implement the `onHit` method', this)\n }\n }\n}\n\nmodule.exports = main;\n\n\n/** WEBPACK FOOTER **\n ** ./~/vue-typeahead/dist/vue-typeahead.js\n **/","/*!\n * Vue.js v1.0.25\n * (c) 2016 Evan You\n * Released under the MIT License.\n */\n'use strict';\n\nfunction set(obj, key, val) {\n if (hasOwn(obj, key)) {\n obj[key] = val;\n return;\n }\n if (obj._isVue) {\n set(obj._data, key, val);\n return;\n }\n var ob = obj.__ob__;\n if (!ob) {\n obj[key] = val;\n return;\n }\n ob.convert(key, val);\n ob.dep.notify();\n if (ob.vms) {\n var i = ob.vms.length;\n while (i--) {\n var vm = ob.vms[i];\n vm._proxy(key);\n vm._digest();\n }\n }\n return val;\n}\n\n/**\n * Delete a property and trigger change if necessary.\n *\n * @param {Object} obj\n * @param {String} key\n */\n\nfunction del(obj, key) {\n if (!hasOwn(obj, key)) {\n return;\n }\n delete obj[key];\n var ob = obj.__ob__;\n if (!ob) {\n if (obj._isVue) {\n delete obj._data[key];\n obj._digest();\n }\n return;\n }\n ob.dep.notify();\n if (ob.vms) {\n var i = ob.vms.length;\n while (i--) {\n var vm = ob.vms[i];\n vm._unproxy(key);\n vm._digest();\n }\n }\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Check whether the object has the property.\n *\n * @param {Object} obj\n * @param {String} key\n * @return {Boolean}\n */\n\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n\n/**\n * Check if an expression is a literal value.\n *\n * @param {String} exp\n * @return {Boolean}\n */\n\nvar literalValueRE = /^\\s?(true|false|-?[\\d\\.]+|'[^']*'|\"[^\"]*\")\\s?$/;\n\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n\n/**\n * Check if a string starts with $ or _\n *\n * @param {String} str\n * @return {Boolean}\n */\n\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F;\n}\n\n/**\n * Guard text output, make sure undefined outputs\n * empty string\n *\n * @param {*} value\n * @return {String}\n */\n\nfunction _toString(value) {\n return value == null ? '' : value.toString();\n}\n\n/**\n * Check and convert possible numeric strings to numbers\n * before setting back to data\n *\n * @param {*} value\n * @return {*|Number}\n */\n\nfunction toNumber(value) {\n if (typeof value !== 'string') {\n return value;\n } else {\n var parsed = Number(value);\n return isNaN(parsed) ? value : parsed;\n }\n}\n\n/**\n * Convert string boolean literals into real booleans.\n *\n * @param {*} value\n * @return {*|Boolean}\n */\n\nfunction toBoolean(value) {\n return value === 'true' ? true : value === 'false' ? false : value;\n}\n\n/**\n * Strip quotes from a string\n *\n * @param {String} str\n * @return {String | false}\n */\n\nfunction stripQuotes(str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n\n/**\n * Camelize a hyphen-delmited string.\n *\n * @param {String} str\n * @return {String}\n */\n\nvar camelizeRE = /-(\\w)/g;\n\nfunction camelize(str) {\n return str.replace(camelizeRE, toUpper);\n}\n\nfunction toUpper(_, c) {\n return c ? c.toUpperCase() : '';\n}\n\n/**\n * Hyphenate a camelCase string.\n *\n * @param {String} str\n * @return {String}\n */\n\nvar hyphenateRE = /([a-z\\d])([A-Z])/g;\n\nfunction hyphenate(str) {\n return str.replace(hyphenateRE, '$1-$2').toLowerCase();\n}\n\n/**\n * Converts hyphen/underscore/slash delimitered names into\n * camelized classNames.\n *\n * e.g. my-component => MyComponent\n * some_else => SomeElse\n * some/comp => SomeComp\n *\n * @param {String} str\n * @return {String}\n */\n\nvar classifyRE = /(?:^|[-_\\/])(\\w)/g;\n\nfunction classify(str) {\n return str.replace(classifyRE, toUpper);\n}\n\n/**\n * Simple bind, faster than native\n *\n * @param {Function} fn\n * @param {Object} ctx\n * @return {Function}\n */\n\nfunction bind(fn, ctx) {\n return function (a) {\n var l = arguments.length;\n return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);\n };\n}\n\n/**\n * Convert an Array-like object to a real Array.\n *\n * @param {Array-like} list\n * @param {Number} [start] - start index\n * @return {Array}\n */\n\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n\n/**\n * Mix properties into target object.\n *\n * @param {Object} to\n * @param {Object} from\n */\n\nfunction extend(to, from) {\n var keys = Object.keys(from);\n var i = keys.length;\n while (i--) {\n to[keys[i]] = from[keys[i]];\n }\n return to;\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n *\n * @param {*} obj\n * @return {Boolean}\n */\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n *\n * @param {*} obj\n * @return {Boolean}\n */\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\n\nfunction isPlainObject(obj) {\n return toString.call(obj) === OBJECT_STRING;\n}\n\n/**\n * Array type check.\n *\n * @param {*} obj\n * @return {Boolean}\n */\n\nvar isArray = Array.isArray;\n\n/**\n * Define a property.\n *\n * @param {Object} obj\n * @param {String} key\n * @param {*} val\n * @param {Boolean} [enumerable]\n */\n\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Debounce a function so it only gets called after the\n * input stops arriving after the given wait period.\n *\n * @param {Function} func\n * @param {Number} wait\n * @return {Function} - the debounced function\n */\n\nfunction _debounce(func, wait) {\n var timeout, args, context, timestamp, result;\n var later = function later() {\n var last = Date.now() - timestamp;\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n };\n return function () {\n context = this;\n args = arguments;\n timestamp = Date.now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n return result;\n };\n}\n\n/**\n * Manual indexOf because it's slightly faster than\n * native.\n *\n * @param {Array} arr\n * @param {*} obj\n */\n\nfunction indexOf(arr, obj) {\n var i = arr.length;\n while (i--) {\n if (arr[i] === obj) return i;\n }\n return -1;\n}\n\n/**\n * Make a cancellable version of an async callback.\n *\n * @param {Function} fn\n * @return {Function}\n */\n\nfunction cancellable(fn) {\n var cb = function cb() {\n if (!cb.cancelled) {\n return fn.apply(this, arguments);\n }\n };\n cb.cancel = function () {\n cb.cancelled = true;\n };\n return cb;\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n *\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n */\n\nfunction looseEqual(a, b) {\n /* eslint-disable eqeqeq */\n return a == b || (isObject(a) && isObject(b) ? JSON.stringify(a) === JSON.stringify(b) : false);\n /* eslint-enable eqeqeq */\n}\n\nvar hasProto = ('__proto__' in {});\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined' && Object.prototype.toString.call(window) !== '[object Object]';\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n// UA sniffing for working around browser-specific quirks\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && UA.indexOf('trident') > 0;\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIos = UA && /(iphone|ipad|ipod|ios)/i.test(UA);\nvar iosVersionMatch = isIos && UA.match(/os ([\\d_]+)/);\nvar iosVersion = iosVersionMatch && iosVersionMatch[1].split('_');\n\n// detecting iOS UIWebView by indexedDB\nvar hasMutationObserverBug = iosVersion && Number(iosVersion[0]) >= 9 && Number(iosVersion[1]) >= 3 && !window.indexedDB;\n\nvar transitionProp = undefined;\nvar transitionEndEvent = undefined;\nvar animationProp = undefined;\nvar animationEndEvent = undefined;\n\n// Transition property/event sniffing\nif (inBrowser && !isIE9) {\n var isWebkitTrans = window.ontransitionend === undefined && window.onwebkittransitionend !== undefined;\n var isWebkitAnim = window.onanimationend === undefined && window.onwebkitanimationend !== undefined;\n transitionProp = isWebkitTrans ? 'WebkitTransition' : 'transition';\n transitionEndEvent = isWebkitTrans ? 'webkitTransitionEnd' : 'transitionend';\n animationProp = isWebkitAnim ? 'WebkitAnimation' : 'animation';\n animationEndEvent = isWebkitAnim ? 'webkitAnimationEnd' : 'animationend';\n}\n\n/**\n * Defer a task to execute it asynchronously. Ideally this\n * should be executed as a microtask, so we leverage\n * MutationObserver if it's available, and fallback to\n * setTimeout(0).\n *\n * @param {Function} cb\n * @param {Object} ctx\n */\n\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n function nextTickHandler() {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks = [];\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n /* istanbul ignore if */\n if (typeof MutationObserver !== 'undefined' && !hasMutationObserverBug) {\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(counter);\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = counter;\n };\n } else {\n // webpack attempts to inject a shim for setImmediate\n // if it is used as a global, so we have to work around that to\n // avoid bundling unnecessary code.\n var context = inBrowser ? window : typeof global !== 'undefined' ? global : {};\n timerFunc = context.setImmediate || setTimeout;\n }\n return function (cb, ctx) {\n var func = ctx ? function () {\n cb.call(ctx);\n } : cb;\n callbacks.push(func);\n if (pending) return;\n pending = true;\n timerFunc(nextTickHandler, 0);\n };\n})();\n\nvar _Set = undefined;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && Set.toString().match(/native code/)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = function () {\n this.set = Object.create(null);\n };\n _Set.prototype.has = function (key) {\n return this.set[key] !== undefined;\n };\n _Set.prototype.add = function (key) {\n this.set[key] = 1;\n };\n _Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n}\n\nfunction Cache(limit) {\n this.size = 0;\n this.limit = limit;\n this.head = this.tail = undefined;\n this._keymap = Object.create(null);\n}\n\nvar p = Cache.prototype;\n\n/**\n * Put into the cache associated with .\n * Returns the entry which was removed to make room for\n * the new entry. Otherwise undefined is returned.\n * (i.e. if there was enough room already).\n *\n * @param {String} key\n * @param {*} value\n * @return {Entry|undefined}\n */\n\np.put = function (key, value) {\n var removed;\n\n var entry = this.get(key, true);\n if (!entry) {\n if (this.size === this.limit) {\n removed = this.shift();\n }\n entry = {\n key: key\n };\n this._keymap[key] = entry;\n if (this.tail) {\n this.tail.newer = entry;\n entry.older = this.tail;\n } else {\n this.head = entry;\n }\n this.tail = entry;\n this.size++;\n }\n entry.value = value;\n\n return removed;\n};\n\n/**\n * Purge the least recently used (oldest) entry from the\n * cache. Returns the removed entry or undefined if the\n * cache was empty.\n */\n\np.shift = function () {\n var entry = this.head;\n if (entry) {\n this.head = this.head.newer;\n this.head.older = undefined;\n entry.newer = entry.older = undefined;\n this._keymap[entry.key] = undefined;\n this.size--;\n }\n return entry;\n};\n\n/**\n * Get and register recent use of . Returns the value\n * associated with or undefined if not in cache.\n *\n * @param {String} key\n * @param {Boolean} returnEntry\n * @return {Entry|*}\n */\n\np.get = function (key, returnEntry) {\n var entry = this._keymap[key];\n if (entry === undefined) return;\n if (entry === this.tail) {\n return returnEntry ? entry : entry.value;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C E\n if (entry.newer) {\n if (entry === this.head) {\n this.head = entry.newer;\n }\n entry.newer.older = entry.older; // C <-- E.\n }\n if (entry.older) {\n entry.older.newer = entry.newer; // C. --> E\n }\n entry.newer = undefined; // D --x\n entry.older = this.tail; // D. --> E\n if (this.tail) {\n this.tail.newer = entry; // E. <-- D\n }\n this.tail = entry;\n return returnEntry ? entry : entry.value;\n};\n\nvar cache$1 = new Cache(1000);\nvar filterTokenRE = /[^\\s'\"]+|'[^']*'|\"[^\"]*\"/g;\nvar reservedArgRE = /^in$|^-?\\d+/;\n\n/**\n * Parser state\n */\n\nvar str;\nvar dir;\nvar c;\nvar prev;\nvar i;\nvar l;\nvar lastFilterIndex;\nvar inSingle;\nvar inDouble;\nvar curly;\nvar square;\nvar paren;\n/**\n * Push a filter to the current directive object\n */\n\nfunction pushFilter() {\n var exp = str.slice(lastFilterIndex, i).trim();\n var filter;\n if (exp) {\n filter = {};\n var tokens = exp.match(filterTokenRE);\n filter.name = tokens[0];\n if (tokens.length > 1) {\n filter.args = tokens.slice(1).map(processFilterArg);\n }\n }\n if (filter) {\n (dir.filters = dir.filters || []).push(filter);\n }\n lastFilterIndex = i + 1;\n}\n\n/**\n * Check if an argument is dynamic and strip quotes.\n *\n * @param {String} arg\n * @return {Object}\n */\n\nfunction processFilterArg(arg) {\n if (reservedArgRE.test(arg)) {\n return {\n value: toNumber(arg),\n dynamic: false\n };\n } else {\n var stripped = stripQuotes(arg);\n var dynamic = stripped === arg;\n return {\n value: dynamic ? arg : stripped,\n dynamic: dynamic\n };\n }\n}\n\n/**\n * Parse a directive value and extract the expression\n * and its filters into a descriptor.\n *\n * Example:\n *\n * \"a + 1 | uppercase\" will yield:\n * {\n * expression: 'a + 1',\n * filters: [\n * { name: 'uppercase', args: null }\n * ]\n * }\n *\n * @param {String} s\n * @return {Object}\n */\n\nfunction parseDirective(s) {\n var hit = cache$1.get(s);\n if (hit) {\n return hit;\n }\n\n // reset parser state\n str = s;\n inSingle = inDouble = false;\n curly = square = paren = 0;\n lastFilterIndex = 0;\n dir = {};\n\n for (i = 0, l = str.length; i < l; i++) {\n prev = c;\n c = str.charCodeAt(i);\n if (inSingle) {\n // check single quote\n if (c === 0x27 && prev !== 0x5C) inSingle = !inSingle;\n } else if (inDouble) {\n // check double quote\n if (c === 0x22 && prev !== 0x5C) inDouble = !inDouble;\n } else if (c === 0x7C && // pipe\n str.charCodeAt(i + 1) !== 0x7C && str.charCodeAt(i - 1) !== 0x7C) {\n if (dir.expression == null) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n dir.expression = str.slice(0, i).trim();\n } else {\n // already has filter\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22:\n inDouble = true;break; // \"\n case 0x27:\n inSingle = true;break; // '\n case 0x28:\n paren++;break; // (\n case 0x29:\n paren--;break; // )\n case 0x5B:\n square++;break; // [\n case 0x5D:\n square--;break; // ]\n case 0x7B:\n curly++;break; // {\n case 0x7D:\n curly--;break; // }\n }\n }\n }\n\n if (dir.expression == null) {\n dir.expression = str.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n cache$1.put(s, dir);\n return dir;\n}\n\nvar directive = Object.freeze({\n parseDirective: parseDirective\n});\n\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\nvar cache = undefined;\nvar tagRE = undefined;\nvar htmlRE = undefined;\n/**\n * Escape a string so it can be used in a RegExp\n * constructor.\n *\n * @param {String} str\n */\n\nfunction escapeRegex(str) {\n return str.replace(regexEscapeRE, '\\\\$&');\n}\n\nfunction compileRegex() {\n var open = escapeRegex(config.delimiters[0]);\n var close = escapeRegex(config.delimiters[1]);\n var unsafeOpen = escapeRegex(config.unsafeDelimiters[0]);\n var unsafeClose = escapeRegex(config.unsafeDelimiters[1]);\n tagRE = new RegExp(unsafeOpen + '((?:.|\\\\n)+?)' + unsafeClose + '|' + open + '((?:.|\\\\n)+?)' + close, 'g');\n htmlRE = new RegExp('^' + unsafeOpen + '((?:.|\\\\n)+?)' + unsafeClose + '$');\n // reset cache\n cache = new Cache(1000);\n}\n\n/**\n * Parse a template text string into an array of tokens.\n *\n * @param {String} text\n * @return {Array | null}\n * - {String} type\n * - {String} value\n * - {Boolean} [html]\n * - {Boolean} [oneTime]\n */\n\nfunction parseText(text) {\n if (!cache) {\n compileRegex();\n }\n var hit = cache.get(text);\n if (hit) {\n return hit;\n }\n if (!tagRE.test(text)) {\n return null;\n }\n var tokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index, html, value, first, oneTime;\n /* eslint-disable no-cond-assign */\n while (match = tagRE.exec(text)) {\n /* eslint-enable no-cond-assign */\n index = match.index;\n // push text token\n if (index > lastIndex) {\n tokens.push({\n value: text.slice(lastIndex, index)\n });\n }\n // tag token\n html = htmlRE.test(match[0]);\n value = html ? match[1] : match[2];\n first = value.charCodeAt(0);\n oneTime = first === 42; // *\n value = oneTime ? value.slice(1) : value;\n tokens.push({\n tag: true,\n value: value.trim(),\n html: html,\n oneTime: oneTime\n });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n tokens.push({\n value: text.slice(lastIndex)\n });\n }\n cache.put(text, tokens);\n return tokens;\n}\n\n/**\n * Format a list of tokens into an expression.\n * e.g. tokens parsed from 'a {{b}} c' can be serialized\n * into one single expression as '\"a \" + b + \" c\"'.\n *\n * @param {Array} tokens\n * @param {Vue} [vm]\n * @return {String}\n */\n\nfunction tokensToExp(tokens, vm) {\n if (tokens.length > 1) {\n return tokens.map(function (token) {\n return formatToken(token, vm);\n }).join('+');\n } else {\n return formatToken(tokens[0], vm, true);\n }\n}\n\n/**\n * Format a single token.\n *\n * @param {Object} token\n * @param {Vue} [vm]\n * @param {Boolean} [single]\n * @return {String}\n */\n\nfunction formatToken(token, vm, single) {\n return token.tag ? token.oneTime && vm ? '\"' + vm.$eval(token.value) + '\"' : inlineFilters(token.value, single) : '\"' + token.value + '\"';\n}\n\n/**\n * For an attribute with multiple interpolation tags,\n * e.g. attr=\"some-{{thing | filter}}\", in order to combine\n * the whole thing into a single watchable expression, we\n * have to inline those filters. This function does exactly\n * that. This is a bit hacky but it avoids heavy changes\n * to directive parser and watcher mechanism.\n *\n * @param {String} exp\n * @param {Boolean} single\n * @return {String}\n */\n\nvar filterRE = /[^|]\\|[^|]/;\nfunction inlineFilters(exp, single) {\n if (!filterRE.test(exp)) {\n return single ? exp : '(' + exp + ')';\n } else {\n var dir = parseDirective(exp);\n if (!dir.filters) {\n return '(' + exp + ')';\n } else {\n return 'this._applyFilters(' + dir.expression + // value\n ',null,' + // oldValue (null for read)\n JSON.stringify(dir.filters) + // filter descriptors\n ',false)'; // write?\n }\n }\n}\n\nvar text = Object.freeze({\n compileRegex: compileRegex,\n parseText: parseText,\n tokensToExp: tokensToExp\n});\n\nvar delimiters = ['{{', '}}'];\nvar unsafeDelimiters = ['{{{', '}}}'];\n\nvar config = Object.defineProperties({\n\n /**\n * Whether to print debug messages.\n * Also enables stack trace for warnings.\n *\n * @type {Boolean}\n */\n\n debug: false,\n\n /**\n * Whether to suppress warnings.\n *\n * @type {Boolean}\n */\n\n silent: false,\n\n /**\n * Whether to use async rendering.\n */\n\n async: true,\n\n /**\n * Whether to warn against errors caught when evaluating\n * expressions.\n */\n\n warnExpressionErrors: true,\n\n /**\n * Whether to allow devtools inspection.\n * Disabled by default in production builds.\n */\n\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Internal flag to indicate the delimiters have been\n * changed.\n *\n * @type {Boolean}\n */\n\n _delimitersChanged: true,\n\n /**\n * List of asset types that a component can own.\n *\n * @type {Array}\n */\n\n _assetTypes: ['component', 'directive', 'elementDirective', 'filter', 'transition', 'partial'],\n\n /**\n * prop binding modes\n */\n\n _propBindingModes: {\n ONE_WAY: 0,\n TWO_WAY: 1,\n ONE_TIME: 2\n },\n\n /**\n * Max circular updates allowed in a batcher flush cycle.\n */\n\n _maxUpdateCount: 100\n\n}, {\n delimiters: { /**\n * Interpolation delimiters. Changing these would trigger\n * the text parser to re-compile the regular expressions.\n *\n * @type {Array}\n */\n\n get: function get() {\n return delimiters;\n },\n set: function set(val) {\n delimiters = val;\n compileRegex();\n },\n configurable: true,\n enumerable: true\n },\n unsafeDelimiters: {\n get: function get() {\n return unsafeDelimiters;\n },\n set: function set(val) {\n unsafeDelimiters = val;\n compileRegex();\n },\n configurable: true,\n enumerable: true\n }\n});\n\nvar warn = undefined;\nvar formatComponentName = undefined;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var hasConsole = typeof console !== 'undefined';\n\n warn = function (msg, vm) {\n if (hasConsole && !config.silent) {\n console.error('[Vue warn]: ' + msg + (vm ? formatComponentName(vm) : ''));\n }\n };\n\n formatComponentName = function (vm) {\n var name = vm._isVue ? vm.$options.name : vm.name;\n return name ? ' (found in component: <' + hyphenate(name) + '>)' : '';\n };\n })();\n}\n\n/**\n * Append with transition.\n *\n * @param {Element} el\n * @param {Element} target\n * @param {Vue} vm\n * @param {Function} [cb]\n */\n\nfunction appendWithTransition(el, target, vm, cb) {\n applyTransition(el, 1, function () {\n target.appendChild(el);\n }, vm, cb);\n}\n\n/**\n * InsertBefore with transition.\n *\n * @param {Element} el\n * @param {Element} target\n * @param {Vue} vm\n * @param {Function} [cb]\n */\n\nfunction beforeWithTransition(el, target, vm, cb) {\n applyTransition(el, 1, function () {\n before(el, target);\n }, vm, cb);\n}\n\n/**\n * Remove with transition.\n *\n * @param {Element} el\n * @param {Vue} vm\n * @param {Function} [cb]\n */\n\nfunction removeWithTransition(el, vm, cb) {\n applyTransition(el, -1, function () {\n remove(el);\n }, vm, cb);\n}\n\n/**\n * Apply transitions with an operation callback.\n *\n * @param {Element} el\n * @param {Number} direction\n * 1: enter\n * -1: leave\n * @param {Function} op - the actual DOM operation\n * @param {Vue} vm\n * @param {Function} [cb]\n */\n\nfunction applyTransition(el, direction, op, vm, cb) {\n var transition = el.__v_trans;\n if (!transition ||\n // skip if there are no js hooks and CSS transition is\n // not supported\n !transition.hooks && !transitionEndEvent ||\n // skip transitions for initial compile\n !vm._isCompiled ||\n // if the vm is being manipulated by a parent directive\n // during the parent's compilation phase, skip the\n // animation.\n vm.$parent && !vm.$parent._isCompiled) {\n op();\n if (cb) cb();\n return;\n }\n var action = direction > 0 ? 'enter' : 'leave';\n transition[action](op, cb);\n}\n\nvar transition = Object.freeze({\n appendWithTransition: appendWithTransition,\n beforeWithTransition: beforeWithTransition,\n removeWithTransition: removeWithTransition,\n applyTransition: applyTransition\n});\n\n/**\n * Query an element selector if it's not an element already.\n *\n * @param {String|Element} el\n * @return {Element}\n */\n\nfunction query(el) {\n if (typeof el === 'string') {\n var selector = el;\n el = document.querySelector(el);\n if (!el) {\n process.env.NODE_ENV !== 'production' && warn('Cannot find element: ' + selector);\n }\n }\n return el;\n}\n\n/**\n * Check if a node is in the document.\n * Note: document.documentElement.contains should work here\n * but always returns false for comment nodes in phantomjs,\n * making unit tests difficult. This is fixed by doing the\n * contains() check on the node's parentNode instead of\n * the node itself.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction inDoc(node) {\n if (!node) return false;\n var doc = node.ownerDocument.documentElement;\n var parent = node.parentNode;\n return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent));\n}\n\n/**\n * Get and remove an attribute from a node.\n *\n * @param {Node} node\n * @param {String} _attr\n */\n\nfunction getAttr(node, _attr) {\n var val = node.getAttribute(_attr);\n if (val !== null) {\n node.removeAttribute(_attr);\n }\n return val;\n}\n\n/**\n * Get an attribute with colon or v-bind: prefix.\n *\n * @param {Node} node\n * @param {String} name\n * @return {String|null}\n */\n\nfunction getBindAttr(node, name) {\n var val = getAttr(node, ':' + name);\n if (val === null) {\n val = getAttr(node, 'v-bind:' + name);\n }\n return val;\n}\n\n/**\n * Check the presence of a bind attribute.\n *\n * @param {Node} node\n * @param {String} name\n * @return {Boolean}\n */\n\nfunction hasBindAttr(node, name) {\n return node.hasAttribute(name) || node.hasAttribute(':' + name) || node.hasAttribute('v-bind:' + name);\n}\n\n/**\n * Insert el before target\n *\n * @param {Element} el\n * @param {Element} target\n */\n\nfunction before(el, target) {\n target.parentNode.insertBefore(el, target);\n}\n\n/**\n * Insert el after target\n *\n * @param {Element} el\n * @param {Element} target\n */\n\nfunction after(el, target) {\n if (target.nextSibling) {\n before(el, target.nextSibling);\n } else {\n target.parentNode.appendChild(el);\n }\n}\n\n/**\n * Remove el from DOM\n *\n * @param {Element} el\n */\n\nfunction remove(el) {\n el.parentNode.removeChild(el);\n}\n\n/**\n * Prepend el to target\n *\n * @param {Element} el\n * @param {Element} target\n */\n\nfunction prepend(el, target) {\n if (target.firstChild) {\n before(el, target.firstChild);\n } else {\n target.appendChild(el);\n }\n}\n\n/**\n * Replace target with el\n *\n * @param {Element} target\n * @param {Element} el\n */\n\nfunction replace(target, el) {\n var parent = target.parentNode;\n if (parent) {\n parent.replaceChild(el, target);\n }\n}\n\n/**\n * Add event listener shorthand.\n *\n * @param {Element} el\n * @param {String} event\n * @param {Function} cb\n * @param {Boolean} [useCapture]\n */\n\nfunction on(el, event, cb, useCapture) {\n el.addEventListener(event, cb, useCapture);\n}\n\n/**\n * Remove event listener shorthand.\n *\n * @param {Element} el\n * @param {String} event\n * @param {Function} cb\n */\n\nfunction off(el, event, cb) {\n el.removeEventListener(event, cb);\n}\n\n/**\n * For IE9 compat: when both class and :class are present\n * getAttribute('class') returns wrong value...\n *\n * @param {Element} el\n * @return {String}\n */\n\nfunction getClass(el) {\n var classname = el.className;\n if (typeof classname === 'object') {\n classname = classname.baseVal || '';\n }\n return classname;\n}\n\n/**\n * In IE9, setAttribute('class') will result in empty class\n * if the element also has the :class attribute; However in\n * PhantomJS, setting `className` does not work on SVG elements...\n * So we have to do a conditional check here.\n *\n * @param {Element} el\n * @param {String} cls\n */\n\nfunction setClass(el, cls) {\n /* istanbul ignore if */\n if (isIE9 && !/svg$/.test(el.namespaceURI)) {\n el.className = cls;\n } else {\n el.setAttribute('class', cls);\n }\n}\n\n/**\n * Add class with compatibility for IE & SVG\n *\n * @param {Element} el\n * @param {String} cls\n */\n\nfunction addClass(el, cls) {\n if (el.classList) {\n el.classList.add(cls);\n } else {\n var cur = ' ' + getClass(el) + ' ';\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n setClass(el, (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for IE & SVG\n *\n * @param {Element} el\n * @param {String} cls\n */\n\nfunction removeClass(el, cls) {\n if (el.classList) {\n el.classList.remove(cls);\n } else {\n var cur = ' ' + getClass(el) + ' ';\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n setClass(el, cur.trim());\n }\n if (!el.className) {\n el.removeAttribute('class');\n }\n}\n\n/**\n * Extract raw content inside an element into a temporary\n * container div\n *\n * @param {Element} el\n * @param {Boolean} asFragment\n * @return {Element|DocumentFragment}\n */\n\nfunction extractContent(el, asFragment) {\n var child;\n var rawContent;\n /* istanbul ignore if */\n if (isTemplate(el) && isFragment(el.content)) {\n el = el.content;\n }\n if (el.hasChildNodes()) {\n trimNode(el);\n rawContent = asFragment ? document.createDocumentFragment() : document.createElement('div');\n /* eslint-disable no-cond-assign */\n while (child = el.firstChild) {\n /* eslint-enable no-cond-assign */\n rawContent.appendChild(child);\n }\n }\n return rawContent;\n}\n\n/**\n * Trim possible empty head/tail text and comment\n * nodes inside a parent.\n *\n * @param {Node} node\n */\n\nfunction trimNode(node) {\n var child;\n /* eslint-disable no-sequences */\n while ((child = node.firstChild, isTrimmable(child))) {\n node.removeChild(child);\n }\n while ((child = node.lastChild, isTrimmable(child))) {\n node.removeChild(child);\n }\n /* eslint-enable no-sequences */\n}\n\nfunction isTrimmable(node) {\n return node && (node.nodeType === 3 && !node.data.trim() || node.nodeType === 8);\n}\n\n/**\n * Check if an element is a template tag.\n * Note if the template appears inside an SVG its tagName\n * will be in lowercase.\n *\n * @param {Element} el\n */\n\nfunction isTemplate(el) {\n return el.tagName && el.tagName.toLowerCase() === 'template';\n}\n\n/**\n * Create an \"anchor\" for performing dom insertion/removals.\n * This is used in a number of scenarios:\n * - fragment instance\n * - v-html\n * - v-if\n * - v-for\n * - component\n *\n * @param {String} content\n * @param {Boolean} persist - IE trashes empty textNodes on\n * cloneNode(true), so in certain\n * cases the anchor needs to be\n * non-empty to be persisted in\n * templates.\n * @return {Comment|Text}\n */\n\nfunction createAnchor(content, persist) {\n var anchor = config.debug ? document.createComment(content) : document.createTextNode(persist ? ' ' : '');\n anchor.__v_anchor = true;\n return anchor;\n}\n\n/**\n * Find a component ref attribute that starts with $.\n *\n * @param {Element} node\n * @return {String|undefined}\n */\n\nvar refRE = /^v-ref:/;\n\nfunction findRef(node) {\n if (node.hasAttributes()) {\n var attrs = node.attributes;\n for (var i = 0, l = attrs.length; i < l; i++) {\n var name = attrs[i].name;\n if (refRE.test(name)) {\n return camelize(name.replace(refRE, ''));\n }\n }\n }\n}\n\n/**\n * Map a function to a range of nodes .\n *\n * @param {Node} node\n * @param {Node} end\n * @param {Function} op\n */\n\nfunction mapNodeRange(node, end, op) {\n var next;\n while (node !== end) {\n next = node.nextSibling;\n op(node);\n node = next;\n }\n op(end);\n}\n\n/**\n * Remove a range of nodes with transition, store\n * the nodes in a fragment with correct ordering,\n * and call callback when done.\n *\n * @param {Node} start\n * @param {Node} end\n * @param {Vue} vm\n * @param {DocumentFragment} frag\n * @param {Function} cb\n */\n\nfunction removeNodeRange(start, end, vm, frag, cb) {\n var done = false;\n var removed = 0;\n var nodes = [];\n mapNodeRange(start, end, function (node) {\n if (node === end) done = true;\n nodes.push(node);\n removeWithTransition(node, vm, onRemoved);\n });\n function onRemoved() {\n removed++;\n if (done && removed >= nodes.length) {\n for (var i = 0; i < nodes.length; i++) {\n frag.appendChild(nodes[i]);\n }\n cb && cb();\n }\n }\n}\n\n/**\n * Check if a node is a DocumentFragment.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction isFragment(node) {\n return node && node.nodeType === 11;\n}\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n *\n * @param {Element} el\n * @return {String}\n */\n\nfunction getOuterHTML(el) {\n if (el.outerHTML) {\n return el.outerHTML;\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML;\n }\n}\n\nvar commonTagRE = /^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i;\nvar reservedTagRE = /^(slot|partial|component)$/i;\n\nvar isUnknownElement = undefined;\nif (process.env.NODE_ENV !== 'production') {\n isUnknownElement = function (el, tag) {\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement;\n } else {\n return (/HTMLUnknownElement/.test(el.toString()) &&\n // Chrome returns unknown for several HTML5 elements.\n // https://code.google.com/p/chromium/issues/detail?id=540526\n // Firefox returns unknown for some \"Interactive elements.\"\n !/^(data|time|rtc|rb|details|dialog|summary)$/.test(tag)\n );\n }\n };\n}\n\n/**\n * Check if an element is a component, if yes return its\n * component id.\n *\n * @param {Element} el\n * @param {Object} options\n * @return {Object|undefined}\n */\n\nfunction checkComponentAttr(el, options) {\n var tag = el.tagName.toLowerCase();\n var hasAttrs = el.hasAttributes();\n if (!commonTagRE.test(tag) && !reservedTagRE.test(tag)) {\n if (resolveAsset(options, 'components', tag)) {\n return { id: tag };\n } else {\n var is = hasAttrs && getIsBinding(el, options);\n if (is) {\n return is;\n } else if (process.env.NODE_ENV !== 'production') {\n var expectedTag = options._componentNameMap && options._componentNameMap[tag];\n if (expectedTag) {\n warn('Unknown custom element: <' + tag + '> - ' + 'did you mean <' + expectedTag + '>? ' + 'HTML is case-insensitive, remember to use kebab-case in templates.');\n } else if (isUnknownElement(el, tag)) {\n warn('Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the \"name\" option.');\n }\n }\n }\n } else if (hasAttrs) {\n return getIsBinding(el, options);\n }\n}\n\n/**\n * Get \"is\" binding from an element.\n *\n * @param {Element} el\n * @param {Object} options\n * @return {Object|undefined}\n */\n\nfunction getIsBinding(el, options) {\n // dynamic syntax\n var exp = el.getAttribute('is');\n if (exp != null) {\n if (resolveAsset(options, 'components', exp)) {\n el.removeAttribute('is');\n return { id: exp };\n }\n } else {\n exp = getBindAttr(el, 'is');\n if (exp != null) {\n return { id: exp, dynamic: true };\n }\n }\n}\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n *\n * All strategy functions follow the same signature:\n *\n * @param {*} parentVal\n * @param {*} childVal\n * @param {Vue} [vm]\n */\n\nvar strats = config.optionMergeStrategies = Object.create(null);\n\n/**\n * Helper that recursively merges two data objects together.\n */\n\nfunction mergeData(to, from) {\n var key, toVal, fromVal;\n for (key in from) {\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isObject(toVal) && isObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to;\n}\n\n/**\n * Data\n */\n\nstrats.data = function (parentVal, childVal, vm) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal;\n }\n if (typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn('The \"data\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n return parentVal;\n }\n if (!parentVal) {\n return childVal;\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn() {\n return mergeData(childVal.call(this), parentVal.call(this));\n };\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn() {\n // instance merge\n var instanceData = typeof childVal === 'function' ? childVal.call(vm) : childVal;\n var defaultData = typeof parentVal === 'function' ? parentVal.call(vm) : undefined;\n if (instanceData) {\n return mergeData(instanceData, defaultData);\n } else {\n return defaultData;\n }\n };\n }\n};\n\n/**\n * El\n */\n\nstrats.el = function (parentVal, childVal, vm) {\n if (!vm && childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn('The \"el\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n return;\n }\n var ret = childVal || parentVal;\n // invoke the element factory if this is instance merge\n return vm && typeof ret === 'function' ? ret.call(vm) : ret;\n};\n\n/**\n * Hooks and param attributes are merged as arrays.\n */\n\nstrats.init = strats.created = strats.ready = strats.attached = strats.detached = strats.beforeCompile = strats.compiled = strats.beforeDestroy = strats.destroyed = strats.activate = function (parentVal, childVal) {\n return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;\n};\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n\nfunction mergeAssets(parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal ? extend(res, guardArrayAssets(childVal)) : res;\n}\n\nconfig._assetTypes.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Events & Watchers.\n *\n * Events & watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n\nstrats.watch = strats.events = function (parentVal, childVal) {\n if (!childVal) return parentVal;\n if (!parentVal) return childVal;\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent ? parent.concat(child) : [child];\n }\n return ret;\n};\n\n/**\n * Other object hashes.\n */\n\nstrats.props = strats.methods = strats.computed = function (parentVal, childVal) {\n if (!childVal) return parentVal;\n if (!parentVal) return childVal;\n var ret = Object.create(null);\n extend(ret, parentVal);\n extend(ret, childVal);\n return ret;\n};\n\n/**\n * Default strategy.\n */\n\nvar defaultStrat = function defaultStrat(parentVal, childVal) {\n return childVal === undefined ? parentVal : childVal;\n};\n\n/**\n * Make sure component options get converted to actual\n * constructors.\n *\n * @param {Object} options\n */\n\nfunction guardComponents(options) {\n if (options.components) {\n var components = options.components = guardArrayAssets(options.components);\n var ids = Object.keys(components);\n var def;\n if (process.env.NODE_ENV !== 'production') {\n var map = options._componentNameMap = {};\n }\n for (var i = 0, l = ids.length; i < l; i++) {\n var key = ids[i];\n if (commonTagRE.test(key) || reservedTagRE.test(key)) {\n process.env.NODE_ENV !== 'production' && warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + key);\n continue;\n }\n // record a all lowercase <-> kebab-case mapping for\n // possible custom element case error warning\n if (process.env.NODE_ENV !== 'production') {\n map[key.replace(/-/g, '').toLowerCase()] = hyphenate(key);\n }\n def = components[key];\n if (isPlainObject(def)) {\n components[key] = Vue.extend(def);\n }\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n *\n * @param {Object} options\n */\n\nfunction guardProps(options) {\n var props = options.props;\n var i, val;\n if (isArray(props)) {\n options.props = {};\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n options.props[val] = null;\n } else if (val.name) {\n options.props[val.name] = val;\n }\n }\n } else if (isPlainObject(props)) {\n var keys = Object.keys(props);\n i = keys.length;\n while (i--) {\n val = props[keys[i]];\n if (typeof val === 'function') {\n props[keys[i]] = { type: val };\n }\n }\n }\n}\n\n/**\n * Guard an Array-format assets option and converted it\n * into the key-value Object format.\n *\n * @param {Object|Array} assets\n * @return {Object}\n */\n\nfunction guardArrayAssets(assets) {\n if (isArray(assets)) {\n var res = {};\n var i = assets.length;\n var asset;\n while (i--) {\n asset = assets[i];\n var id = typeof asset === 'function' ? asset.options && asset.options.name || asset.id : asset.name || asset.id;\n if (!id) {\n process.env.NODE_ENV !== 'production' && warn('Array-syntax assets must provide a \"name\" or \"id\" field.');\n } else {\n res[id] = asset;\n }\n }\n return res;\n }\n return assets;\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n *\n * @param {Object} parent\n * @param {Object} child\n * @param {Vue} [vm] - if vm is present, indicates this is\n * an instantiation merge.\n */\n\nfunction mergeOptions(parent, child, vm) {\n guardComponents(child);\n guardProps(child);\n if (process.env.NODE_ENV !== 'production') {\n if (child.propsData && !vm) {\n warn('propsData can only be used as an instantiation option.');\n }\n }\n var options = {};\n var key;\n if (child['extends']) {\n parent = typeof child['extends'] === 'function' ? mergeOptions(parent, child['extends'].options, vm) : mergeOptions(parent, child['extends'], vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n var mixin = child.mixins[i];\n var mixinOptions = mixin.prototype instanceof Vue ? mixin.options : mixin;\n parent = mergeOptions(parent, mixinOptions, vm);\n }\n }\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField(key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options;\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n *\n * @param {Object} options\n * @param {String} type\n * @param {String} id\n * @param {Boolean} warnMissing\n * @return {Object|Function}\n */\n\nfunction resolveAsset(options, type, id, warnMissing) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return;\n }\n var assets = options[type];\n var camelizedId;\n var res = assets[id] ||\n // camelCase ID\n assets[camelizedId = camelize(id)] ||\n // Pascal Case ID\n assets[camelizedId.charAt(0).toUpperCase() + camelizedId.slice(1)];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);\n }\n return res;\n}\n\nvar uid$1 = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n *\n * @constructor\n */\nfunction Dep() {\n this.id = uid$1++;\n this.subs = [];\n}\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\n\n/**\n * Add a directive subscriber.\n *\n * @param {Directive} sub\n */\n\nDep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n};\n\n/**\n * Remove a directive subscriber.\n *\n * @param {Directive} sub\n */\n\nDep.prototype.removeSub = function (sub) {\n this.subs.$remove(sub);\n};\n\n/**\n * Add self as a dependency to the target watcher.\n */\n\nDep.prototype.depend = function () {\n Dep.target.addDep(this);\n};\n\n/**\n * Notify all subscribers of a new value.\n */\n\nDep.prototype.notify = function () {\n // stablize the subscriber list first\n var subs = toArray(this.subs);\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto)\n\n/**\n * Intercept mutating methods and emit events\n */\n\n;['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n // avoid leaking arguments:\n // http://jsperf.com/closure-with-arguments\n var i = arguments.length;\n var args = new Array(i);\n while (i--) {\n args[i] = arguments[i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n inserted = args;\n break;\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted) ob.observeArray(inserted);\n // notify change\n ob.dep.notify();\n return result;\n });\n});\n\n/**\n * Swap the element at the given index with a new value\n * and emits corresponding event.\n *\n * @param {Number} index\n * @param {*} val\n * @return {*} - replaced element\n */\n\ndef(arrayProto, '$set', function $set(index, val) {\n if (index >= this.length) {\n this.length = Number(index) + 1;\n }\n return this.splice(index, 1, val)[0];\n});\n\n/**\n * Convenience method to remove the element at given index or target element reference.\n *\n * @param {*} item\n */\n\ndef(arrayProto, '$remove', function $remove(item) {\n /* istanbul ignore if */\n if (!this.length) return;\n var index = indexOf(this, item);\n if (index > -1) {\n return this.splice(index, 1);\n }\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However in certain cases, e.g.\n * v-for scope alias and props, we don't want to force conversion\n * because the value may be a nested value under a frozen data structure.\n *\n * So whenever we want to set a reactive property without forcing\n * conversion on the new value, we wrap that call inside this function.\n */\n\nvar shouldConvert = true;\n\nfunction withoutConversion(fn) {\n shouldConvert = false;\n fn();\n shouldConvert = true;\n}\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n *\n * @param {Array|Object} value\n * @constructor\n */\n\nfunction Observer(value) {\n this.value = value;\n this.dep = new Dep();\n def(value, '__ob__', this);\n if (isArray(value)) {\n var augment = hasProto ? protoAugment : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n}\n\n// Instance methods\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n *\n * @param {Object} obj\n */\n\nObserver.prototype.walk = function (obj) {\n var keys = Object.keys(obj);\n for (var i = 0, l = keys.length; i < l; i++) {\n this.convert(keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n *\n * @param {Array} items\n */\n\nObserver.prototype.observeArray = function (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n/**\n * Convert a property into getter/setter so we can emit\n * the events when the property is accessed/changed.\n *\n * @param {String} key\n * @param {*} val\n */\n\nObserver.prototype.convert = function (key, val) {\n defineReactive(this.value, key, val);\n};\n\n/**\n * Add an owner vm, so that when $set/$delete mutations\n * happen we can notify owner vms to proxy the keys and\n * digest the watchers. This is only called when the object\n * is observed as an instance's root $data.\n *\n * @param {Vue} vm\n */\n\nObserver.prototype.addVm = function (vm) {\n (this.vms || (this.vms = [])).push(vm);\n};\n\n/**\n * Remove an owner vm. This is called when the object is\n * swapped out as an instance's $data object.\n *\n * @param {Vue} vm\n */\n\nObserver.prototype.removeVm = function (vm) {\n this.vms.$remove(vm);\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n *\n * @param {Object|Array} target\n * @param {Object} src\n */\n\nfunction protoAugment(target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n *\n * @param {Object|Array} target\n * @param {Object} proto\n */\n\nfunction copyAugment(target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n *\n * @param {*} value\n * @param {Vue} [vm]\n * @return {Observer|undefined}\n * @static\n */\n\nfunction observe(value, vm) {\n if (!value || typeof value !== 'object') {\n return;\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (shouldConvert && (isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) {\n ob = new Observer(value);\n }\n if (ob && vm) {\n ob.addVm(vm);\n }\n return ob;\n}\n\n/**\n * Define a reactive property on an Object.\n *\n * @param {Object} obj\n * @param {String} key\n * @param {*} val\n */\n\nfunction defineReactive(obj, key, val) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n }\n if (isArray(value)) {\n for (var e, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n }\n }\n }\n return value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (newVal === value) {\n return;\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = observe(newVal);\n dep.notify();\n }\n });\n}\n\n\n\nvar util = Object.freeze({\n\tdefineReactive: defineReactive,\n\tset: set,\n\tdel: del,\n\thasOwn: hasOwn,\n\tisLiteral: isLiteral,\n\tisReserved: isReserved,\n\t_toString: _toString,\n\ttoNumber: toNumber,\n\ttoBoolean: toBoolean,\n\tstripQuotes: stripQuotes,\n\tcamelize: camelize,\n\thyphenate: hyphenate,\n\tclassify: classify,\n\tbind: bind,\n\ttoArray: toArray,\n\textend: extend,\n\tisObject: isObject,\n\tisPlainObject: isPlainObject,\n\tdef: def,\n\tdebounce: _debounce,\n\tindexOf: indexOf,\n\tcancellable: cancellable,\n\tlooseEqual: looseEqual,\n\tisArray: isArray,\n\thasProto: hasProto,\n\tinBrowser: inBrowser,\n\tdevtools: devtools,\n\tisIE: isIE,\n\tisIE9: isIE9,\n\tisAndroid: isAndroid,\n\tisIos: isIos,\n\tiosVersionMatch: iosVersionMatch,\n\tiosVersion: iosVersion,\n\thasMutationObserverBug: hasMutationObserverBug,\n\tget transitionProp () { return transitionProp; },\n\tget transitionEndEvent () { return transitionEndEvent; },\n\tget animationProp () { return animationProp; },\n\tget animationEndEvent () { return animationEndEvent; },\n\tnextTick: nextTick,\n\tget _Set () { return _Set; },\n\tquery: query,\n\tinDoc: inDoc,\n\tgetAttr: getAttr,\n\tgetBindAttr: getBindAttr,\n\thasBindAttr: hasBindAttr,\n\tbefore: before,\n\tafter: after,\n\tremove: remove,\n\tprepend: prepend,\n\treplace: replace,\n\ton: on,\n\toff: off,\n\tsetClass: setClass,\n\taddClass: addClass,\n\tremoveClass: removeClass,\n\textractContent: extractContent,\n\ttrimNode: trimNode,\n\tisTemplate: isTemplate,\n\tcreateAnchor: createAnchor,\n\tfindRef: findRef,\n\tmapNodeRange: mapNodeRange,\n\tremoveNodeRange: removeNodeRange,\n\tisFragment: isFragment,\n\tgetOuterHTML: getOuterHTML,\n\tmergeOptions: mergeOptions,\n\tresolveAsset: resolveAsset,\n\tcheckComponentAttr: checkComponentAttr,\n\tcommonTagRE: commonTagRE,\n\treservedTagRE: reservedTagRE,\n\tget warn () { return warn; }\n});\n\nvar uid = 0;\n\nfunction initMixin (Vue) {\n /**\n * The main init sequence. This is called for every\n * instance, including ones that are created from extended\n * constructors.\n *\n * @param {Object} options - this options object should be\n * the result of merging class\n * options and the options passed\n * in to the constructor.\n */\n\n Vue.prototype._init = function (options) {\n options = options || {};\n\n this.$el = null;\n this.$parent = options.parent;\n this.$root = this.$parent ? this.$parent.$root : this;\n this.$children = [];\n this.$refs = {}; // child vm references\n this.$els = {}; // element references\n this._watchers = []; // all watchers as an array\n this._directives = []; // all directives\n\n // a uid\n this._uid = uid++;\n\n // a flag to avoid this being observed\n this._isVue = true;\n\n // events bookkeeping\n this._events = {}; // registered callbacks\n this._eventsCount = {}; // for $broadcast optimization\n\n // fragment instance properties\n this._isFragment = false;\n this._fragment = // @type {DocumentFragment}\n this._fragmentStart = // @type {Text|Comment}\n this._fragmentEnd = null; // @type {Text|Comment}\n\n // lifecycle state\n this._isCompiled = this._isDestroyed = this._isReady = this._isAttached = this._isBeingDestroyed = this._vForRemoving = false;\n this._unlinkFn = null;\n\n // context:\n // if this is a transcluded component, context\n // will be the common parent vm of this instance\n // and its host.\n this._context = options._context || this.$parent;\n\n // scope:\n // if this is inside an inline v-for, the scope\n // will be the intermediate scope created for this\n // repeat fragment. this is used for linking props\n // and container directives.\n this._scope = options._scope;\n\n // fragment:\n // if this instance is compiled inside a Fragment, it\n // needs to reigster itself as a child of that fragment\n // for attach/detach to work properly.\n this._frag = options._frag;\n if (this._frag) {\n this._frag.children.push(this);\n }\n\n // push self into parent / transclusion host\n if (this.$parent) {\n this.$parent.$children.push(this);\n }\n\n // merge options.\n options = this.$options = mergeOptions(this.constructor.options, options, this);\n\n // set ref\n this._updateRef();\n\n // initialize data as empty object.\n // it will be filled up in _initData().\n this._data = {};\n\n // call init hook\n this._callHook('init');\n\n // initialize data observation and scope inheritance.\n this._initState();\n\n // setup event system and option events.\n this._initEvents();\n\n // call created hook\n this._callHook('created');\n\n // if `el` option is passed, start compilation.\n if (options.el) {\n this.$mount(options.el);\n }\n };\n}\n\nvar pathCache = new Cache(1000);\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Determine the type of a character in a keypath.\n *\n * @param {Char} ch\n * @return {String} type\n */\n\nfunction getPathCharType(ch) {\n if (ch === undefined) {\n return 'eof';\n }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n case 0x30:\n // 0\n return ch;\n\n case 0x5F: // _\n case 0x24:\n // $\n return 'ident';\n\n case 0x20: // Space\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029:\n // Paragraph Separator\n return 'ws';\n }\n\n // a-z, A-Z\n if (code >= 0x61 && code <= 0x7A || code >= 0x41 && code <= 0x5A) {\n return 'ident';\n }\n\n // 1-9\n if (code >= 0x31 && code <= 0x39) {\n return 'number';\n }\n\n return 'else';\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction formatSubPath(path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) {\n return false;\n }\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed;\n}\n\n/**\n * Parse a string path into an array of segments\n *\n * @param {String} path\n * @return {Array|undefined}\n */\n\nfunction parse(path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c, newChar, key, type, transition, action, typeMap;\n\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n key = formatSubPath(key);\n if (key === false) {\n return false;\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote() {\n var nextChar = path[index + 1];\n if (mode === IN_SINGLE_QUOTE && nextChar === \"'\" || mode === IN_DOUBLE_QUOTE && nextChar === '\"') {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true;\n }\n }\n\n while (mode != null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return; // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined ? c : newChar;\n if (action() === false) {\n return;\n }\n }\n\n if (mode === AFTER_PATH) {\n keys.raw = path;\n return keys;\n }\n }\n}\n\n/**\n * External parse that check for a cache hit first\n *\n * @param {String} path\n * @return {Array|undefined}\n */\n\nfunction parsePath(path) {\n var hit = pathCache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n pathCache.put(path, hit);\n }\n }\n return hit;\n}\n\n/**\n * Get from an object from a path string\n *\n * @param {Object} obj\n * @param {String} path\n */\n\nfunction getPath(obj, path) {\n return parseExpression(path).get(obj);\n}\n\n/**\n * Warn against setting non-existent root path on a vm.\n */\n\nvar warnNonExistent;\nif (process.env.NODE_ENV !== 'production') {\n warnNonExistent = function (path, vm) {\n warn('You are setting a non-existent path \"' + path.raw + '\" ' + 'on a vm instance. Consider pre-initializing the property ' + 'with the \"data\" option for more reliable reactivity ' + 'and better performance.', vm);\n };\n}\n\n/**\n * Set on an object from a path\n *\n * @param {Object} obj\n * @param {String | Array} path\n * @param {*} val\n */\n\nfunction setPath(obj, path, val) {\n var original = obj;\n if (typeof path === 'string') {\n path = parse(path);\n }\n if (!path || !isObject(obj)) {\n return false;\n }\n var last, key;\n for (var i = 0, l = path.length; i < l; i++) {\n last = obj;\n key = path[i];\n if (key.charAt(0) === '*') {\n key = parseExpression(key.slice(1)).get.call(original, original);\n }\n if (i < l - 1) {\n obj = obj[key];\n if (!isObject(obj)) {\n obj = {};\n if (process.env.NODE_ENV !== 'production' && last._isVue) {\n warnNonExistent(path, last);\n }\n set(last, key, obj);\n }\n } else {\n if (isArray(obj)) {\n obj.$set(key, val);\n } else if (key in obj) {\n obj[key] = val;\n } else {\n if (process.env.NODE_ENV !== 'production' && obj._isVue) {\n warnNonExistent(path, obj);\n }\n set(obj, key, val);\n }\n }\n }\n return true;\n}\n\nvar path = Object.freeze({\n parsePath: parsePath,\n getPath: getPath,\n setPath: setPath\n});\n\nvar expressionCache = new Cache(1000);\n\nvar allowedKeywords = 'Math,Date,this,true,false,null,undefined,Infinity,NaN,' + 'isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,' + 'encodeURIComponent,parseInt,parseFloat';\nvar allowedKeywordsRE = new RegExp('^(' + allowedKeywords.replace(/,/g, '\\\\b|') + '\\\\b)');\n\n// keywords that don't make sense inside expressions\nvar improperKeywords = 'break,case,class,catch,const,continue,debugger,default,' + 'delete,do,else,export,extends,finally,for,function,if,' + 'import,in,instanceof,let,return,super,switch,throw,try,' + 'var,while,with,yield,enum,await,implements,package,' + 'protected,static,interface,private,public';\nvar improperKeywordsRE = new RegExp('^(' + improperKeywords.replace(/,/g, '\\\\b|') + '\\\\b)');\n\nvar wsRE = /\\s/g;\nvar newlineRE = /\\n/g;\nvar saveRE = /[\\{,]\\s*[\\w\\$_]+\\s*:|('(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`)|new |typeof |void /g;\nvar restoreRE = /\"(\\d+)\"/g;\nvar pathTestRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['.*?'\\]|\\[\".*?\"\\]|\\[\\d+\\]|\\[[A-Za-z_$][\\w$]*\\])*$/;\nvar identRE = /[^\\w$\\.](?:[A-Za-z_$][\\w$]*)/g;\nvar literalValueRE$1 = /^(?:true|false|null|undefined|Infinity|NaN)$/;\n\nfunction noop() {}\n\n/**\n * Save / Rewrite / Restore\n *\n * When rewriting paths found in an expression, it is\n * possible for the same letter sequences to be found in\n * strings and Object literal property keys. Therefore we\n * remove and store these parts in a temporary array, and\n * restore them after the path rewrite.\n */\n\nvar saved = [];\n\n/**\n * Save replacer\n *\n * The save regex can match two possible cases:\n * 1. An opening object literal\n * 2. A string\n * If matched as a plain string, we need to escape its\n * newlines, since the string needs to be preserved when\n * generating the function body.\n *\n * @param {String} str\n * @param {String} isString - str if matched as a string\n * @return {String} - placeholder with index\n */\n\nfunction save(str, isString) {\n var i = saved.length;\n saved[i] = isString ? str.replace(newlineRE, '\\\\n') : str;\n return '\"' + i + '\"';\n}\n\n/**\n * Path rewrite replacer\n *\n * @param {String} raw\n * @return {String}\n */\n\nfunction rewrite(raw) {\n var c = raw.charAt(0);\n var path = raw.slice(1);\n if (allowedKeywordsRE.test(path)) {\n return raw;\n } else {\n path = path.indexOf('\"') > -1 ? path.replace(restoreRE, restore) : path;\n return c + 'scope.' + path;\n }\n}\n\n/**\n * Restore replacer\n *\n * @param {String} str\n * @param {String} i - matched save index\n * @return {String}\n */\n\nfunction restore(str, i) {\n return saved[i];\n}\n\n/**\n * Rewrite an expression, prefixing all path accessors with\n * `scope.` and generate getter/setter functions.\n *\n * @param {String} exp\n * @return {Function}\n */\n\nfunction compileGetter(exp) {\n if (improperKeywordsRE.test(exp)) {\n process.env.NODE_ENV !== 'production' && warn('Avoid using reserved keywords in expression: ' + exp);\n }\n // reset state\n saved.length = 0;\n // save strings and object literal keys\n var body = exp.replace(saveRE, save).replace(wsRE, '');\n // rewrite all paths\n // pad 1 space here because the regex matches 1 extra char\n body = (' ' + body).replace(identRE, rewrite).replace(restoreRE, restore);\n return makeGetterFn(body);\n}\n\n/**\n * Build a getter function. Requires eval.\n *\n * We isolate the try/catch so it doesn't affect the\n * optimization of the parse function when it is not called.\n *\n * @param {String} body\n * @return {Function|undefined}\n */\n\nfunction makeGetterFn(body) {\n try {\n /* eslint-disable no-new-func */\n return new Function('scope', 'return ' + body + ';');\n /* eslint-enable no-new-func */\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn('It seems you are using the default build of Vue.js in an environment ' + 'with Content Security Policy that prohibits unsafe-eval. ' + 'Use the CSP-compliant build instead: ' + 'http://vuejs.org/guide/installation.html#CSP-compliant-build');\n } else {\n warn('Invalid expression. ' + 'Generated function body: ' + body);\n }\n }\n return noop;\n }\n}\n\n/**\n * Compile a setter function for the expression.\n *\n * @param {String} exp\n * @return {Function|undefined}\n */\n\nfunction compileSetter(exp) {\n var path = parsePath(exp);\n if (path) {\n return function (scope, val) {\n setPath(scope, path, val);\n };\n } else {\n process.env.NODE_ENV !== 'production' && warn('Invalid setter expression: ' + exp);\n }\n}\n\n/**\n * Parse an expression into re-written getter/setters.\n *\n * @param {String} exp\n * @param {Boolean} needSet\n * @return {Function}\n */\n\nfunction parseExpression(exp, needSet) {\n exp = exp.trim();\n // try cache\n var hit = expressionCache.get(exp);\n if (hit) {\n if (needSet && !hit.set) {\n hit.set = compileSetter(hit.exp);\n }\n return hit;\n }\n var res = { exp: exp };\n res.get = isSimplePath(exp) && exp.indexOf('[') < 0\n // optimized super simple getter\n ? makeGetterFn('scope.' + exp)\n // dynamic getter\n : compileGetter(exp);\n if (needSet) {\n res.set = compileSetter(exp);\n }\n expressionCache.put(exp, res);\n return res;\n}\n\n/**\n * Check if an expression is a simple path.\n *\n * @param {String} exp\n * @return {Boolean}\n */\n\nfunction isSimplePath(exp) {\n return pathTestRE.test(exp) &&\n // don't treat literal values as paths\n !literalValueRE$1.test(exp) &&\n // Math constants e.g. Math.PI, Math.E etc.\n exp.slice(0, 5) !== 'Math.';\n}\n\nvar expression = Object.freeze({\n parseExpression: parseExpression,\n isSimplePath: isSimplePath\n});\n\n// we have two separate queues: one for directive updates\n// and one for user watcher registered via $watch().\n// we want to guarantee directive updates to be called\n// before user watchers so that when user watchers are\n// triggered, the DOM would have already been in updated\n// state.\n\nvar queue = [];\nvar userQueue = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\n\n/**\n * Reset the batcher's state.\n */\n\nfunction resetBatcherState() {\n queue.length = 0;\n userQueue.length = 0;\n has = {};\n circular = {};\n waiting = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\n\nfunction flushBatcherQueue() {\n var _again = true;\n\n _function: while (_again) {\n _again = false;\n\n runBatcherQueue(queue);\n runBatcherQueue(userQueue);\n // user watchers triggered more watchers,\n // keep flushing until it depletes\n if (queue.length) {\n _again = true;\n continue _function;\n }\n // dev tool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n resetBatcherState();\n }\n}\n\n/**\n * Run the watchers in a single queue.\n *\n * @param {Array} queue\n */\n\nfunction runBatcherQueue(queue) {\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (var i = 0; i < queue.length; i++) {\n var watcher = queue[i];\n var id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > config._maxUpdateCount) {\n warn('You may have an infinite update loop for watcher ' + 'with expression \"' + watcher.expression + '\"', watcher.vm);\n break;\n }\n }\n }\n queue.length = 0;\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n *\n * @param {Watcher} watcher\n * properties:\n * - {Number} id\n * - {Function} run\n */\n\nfunction pushWatcher(watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n // push watcher into appropriate queue\n var q = watcher.user ? userQueue : queue;\n has[id] = q.length;\n q.push(watcher);\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushBatcherQueue);\n }\n }\n}\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n *\n * @param {Vue} vm\n * @param {String|Function} expOrFn\n * @param {Function} cb\n * @param {Object} options\n * - {Array} filters\n * - {Boolean} twoWay\n * - {Boolean} deep\n * - {Boolean} user\n * - {Boolean} sync\n * - {Boolean} lazy\n * - {Function} [preProcess]\n * - {Function} [postProcess]\n * @constructor\n */\nfunction Watcher(vm, expOrFn, cb, options) {\n // mix in options\n if (options) {\n extend(this, options);\n }\n var isFn = typeof expOrFn === 'function';\n this.vm = vm;\n vm._watchers.push(this);\n this.expression = expOrFn;\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.prevError = null; // for async error stacks\n // parse expression for getter/setter\n if (isFn) {\n this.getter = expOrFn;\n this.setter = undefined;\n } else {\n var res = parseExpression(expOrFn, this.twoWay);\n this.getter = res.get;\n this.setter = res.set;\n }\n this.value = this.lazy ? undefined : this.get();\n // state for avoiding false triggers for deep and Array\n // watchers during vm._digest()\n this.queued = this.shallow = false;\n}\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\n\nWatcher.prototype.get = function () {\n this.beforeGet();\n var scope = this.scope || this.vm;\n var value;\n try {\n value = this.getter.call(scope, scope);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && config.warnExpressionErrors) {\n warn('Error when evaluating expression ' + '\"' + this.expression + '\": ' + e.toString(), this.vm);\n }\n }\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n if (this.preProcess) {\n value = this.preProcess(value);\n }\n if (this.filters) {\n value = scope._applyFilters(value, null, this.filters, false);\n }\n if (this.postProcess) {\n value = this.postProcess(value);\n }\n this.afterGet();\n return value;\n};\n\n/**\n * Set the corresponding value with the setter.\n *\n * @param {*} value\n */\n\nWatcher.prototype.set = function (value) {\n var scope = this.scope || this.vm;\n if (this.filters) {\n value = scope._applyFilters(value, this.value, this.filters, true);\n }\n try {\n this.setter.call(scope, scope, value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && config.warnExpressionErrors) {\n warn('Error when evaluating setter ' + '\"' + this.expression + '\": ' + e.toString(), this.vm);\n }\n }\n // two-way sync for v-for alias\n var forContext = scope.$forContext;\n if (forContext && forContext.alias === this.expression) {\n if (forContext.filters) {\n process.env.NODE_ENV !== 'production' && warn('It seems you are using two-way binding on ' + 'a v-for alias (' + this.expression + '), and the ' + 'v-for has filters. This will not work properly. ' + 'Either remove the filters or use an array of ' + 'objects and bind to object properties instead.', this.vm);\n return;\n }\n forContext._withLock(function () {\n if (scope.$key) {\n // original is an object\n forContext.rawValue[scope.$key] = value;\n } else {\n forContext.rawValue.$set(scope.$index, value);\n }\n });\n }\n};\n\n/**\n * Prepare for dependency collection.\n */\n\nWatcher.prototype.beforeGet = function () {\n Dep.target = this;\n};\n\n/**\n * Add a dependency to this directive.\n *\n * @param {Dep} dep\n */\n\nWatcher.prototype.addDep = function (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\n\nWatcher.prototype.afterGet = function () {\n Dep.target = null;\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n *\n * @param {Boolean} shallow\n */\n\nWatcher.prototype.update = function (shallow) {\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync || !config.async) {\n this.run();\n } else {\n // if queued, only overwrite shallow with non-shallow,\n // but not the other way around.\n this.shallow = this.queued ? shallow ? this.shallow : false : !!shallow;\n this.queued = true;\n // record before-push error stack in debug mode\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.debug) {\n this.prevError = new Error('[vue] async stack trace');\n }\n pushWatcher(this);\n }\n};\n\n/**\n * Batcher job interface.\n * Will be called by the batcher.\n */\n\nWatcher.prototype.run = function () {\n if (this.active) {\n var value = this.get();\n if (value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated; but only do so if this is a\n // non-shallow update (caused by a vm digest).\n (isObject(value) || this.deep) && !this.shallow) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n // in debug + async mode, when a watcher callbacks\n // throws, we also throw the saved before-push error\n // so the full cross-tick stack trace is available.\n var prevError = this.prevError;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.debug && prevError) {\n this.prevError = null;\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n nextTick(function () {\n throw prevError;\n }, 0);\n throw e;\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n this.queued = this.shallow = false;\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\n\nWatcher.prototype.evaluate = function () {\n // avoid overwriting another watcher that is being\n // collected.\n var current = Dep.target;\n this.value = this.get();\n this.dirty = false;\n Dep.target = current;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\n\nWatcher.prototype.depend = function () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subcriber list.\n */\n\nWatcher.prototype.teardown = function () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed or is performing a v-for\n // re-render (the watcher list is then filtered by v-for).\n if (!this.vm._isBeingDestroyed && !this.vm._vForRemoving) {\n this.vm._watchers.$remove(this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n this.vm = this.cb = this.value = null;\n }\n};\n\n/**\n * Recrusively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n *\n * @param {*} val\n */\n\nvar seenObjects = new _Set();\nfunction traverse(val, seen) {\n var i = undefined,\n keys = undefined;\n if (!seen) {\n seen = seenObjects;\n seen.clear();\n }\n var isA = isArray(val);\n var isO = isObject(val);\n if (isA || isO) {\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return;\n } else {\n seen.add(depId);\n }\n }\n if (isA) {\n i = val.length;\n while (i--) traverse(val[i], seen);\n } else if (isO) {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) traverse(val[keys[i]], seen);\n }\n }\n}\n\nvar text$1 = {\n\n bind: function bind() {\n this.attr = this.el.nodeType === 3 ? 'data' : 'textContent';\n },\n\n update: function update(value) {\n this.el[this.attr] = _toString(value);\n }\n};\n\nvar templateCache = new Cache(1000);\nvar idSelectorCache = new Cache(1000);\n\nvar map = {\n efault: [0, '', ''],\n legend: [1, '
', '
'],\n tr: [2, '', '
'],\n col: [2, '', '
']\n};\n\nmap.td = map.th = [3, '', '
'];\n\nmap.option = map.optgroup = [1, ''];\n\nmap.thead = map.tbody = map.colgroup = map.caption = map.tfoot = [1, '', '
'];\n\nmap.g = map.defs = map.symbol = map.use = map.image = map.text = map.circle = map.ellipse = map.line = map.path = map.polygon = map.polyline = map.rect = [1, '', ''];\n\n/**\n * Check if a node is a supported template node with a\n * DocumentFragment content.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction isRealTemplate(node) {\n return isTemplate(node) && isFragment(node.content);\n}\n\nvar tagRE$1 = /<([\\w:-]+)/;\nvar entityRE = /&#?\\w+?;/;\nvar commentRE = /');\n\n if (commentEnd >= 0) {\n advance(commentEnd + 3);\n continue;\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (/^');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue;\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n if (handler.doctype) {\n handler.doctype(doctypeMatch[0]);\n }\n advance(doctypeMatch[0].length);\n continue;\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[0], endTagMatch[1], curIndex, index);\n continue;\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n continue;\n }\n }\n\n var text = void 0;\n if (textEnd >= 0) {\n text = html.substring(0, textEnd);\n advance(textEnd);\n } else {\n text = html;\n html = '';\n }\n\n if (handler.chars) {\n handler.chars(text);\n }\n } else {\n (function () {\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(]*>)', 'i'));\n var endTagLength = 0;\n var rest = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (stackedTag !== 'script' && stackedTag !== 'style' && stackedTag !== 'noscript') {\n text = text.replace(//g, '$1').replace(//g, '$1');\n }\n if (handler.chars) {\n handler.chars(text);\n }\n return '';\n });\n index += html.length - rest.length;\n html = rest;\n parseEndTag('', stackedTag, index - endTagLength, index);\n })();\n }\n\n if (html === last) {\n throw new Error('Error parsing template:\\n\\n' + html);\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance(n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag() {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end = void 0,\n attr = void 0;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match;\n }\n }\n }\n\n function handleStartTag(match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag('', lastTag);\n }\n if (canBeLeftOpenTag(tagName) && lastTag === tagName) {\n parseEndTag('', tagName);\n }\n }\n\n var unary = isUnaryTag(tagName) || tagName === 'html' && lastTag === 'head' || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') {\n delete args[3];\n }\n if (args[4] === '') {\n delete args[4];\n }\n if (args[5] === '') {\n delete args[5];\n }\n }\n attrs[i] = {\n name: args[1],\n value: decodeHTML(args[3] || args[4] || args[5] || '')\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, attrs: attrs });\n lastTag = tagName;\n unarySlash = '';\n }\n\n if (handler.start) {\n handler.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag(tag, tagName, start, end) {\n var pos = void 0;\n if (start == null) start = index;\n if (end == null) end = index;\n\n // Find the closest opened tag of the same type\n if (tagName) {\n var needle = tagName.toLowerCase();\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].tag.toLowerCase() === needle) {\n break;\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (handler.end) {\n handler.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (tagName.toLowerCase() === 'br') {\n if (handler.start) {\n handler.start(tagName, [], true, start, end);\n }\n } else if (tagName.toLowerCase() === 'p') {\n if (handler.start) {\n handler.start(tagName, [], false, start, end);\n }\n if (handler.end) {\n handler.end(tagName, start, end);\n }\n }\n }\n }\n\n function parseFilters(exp) {\n var inSingle = false;\n var inDouble = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c = void 0,\n prev = void 0,\n i = void 0,\n expression = void 0,\n filters = void 0;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n // check single quote\n if (c === 0x27 && prev !== 0x5C) inSingle = !inSingle;\n } else if (inDouble) {\n // check double quote\n if (c === 0x22 && prev !== 0x5C) inDouble = !inDouble;\n } else if (c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C && exp.charCodeAt(i - 1) !== 0x7C && !curly && !square && !paren) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22:\n inDouble = true;break; // \"\n case 0x27:\n inSingle = true;break; // '\n case 0x28:\n paren++;break; // (\n case 0x29:\n paren--;break; // )\n case 0x5B:\n square++;break; // [\n case 0x5D:\n square--;break; // ]\n case 0x7B:\n curly++;break; // {\n case 0x7D:\n curly--;break; // }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter() {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression;\n }\n\n function wrapFilter(exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return '_f(\"' + filter + '\")(' + exp + ')';\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return '_f(\"' + name + '\")(' + exp + ',' + args;\n }\n }\n\n var defaultTagRE = /\\{\\{((?:.|\\\\n)+?)\\}\\}/g;\n var regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\n var buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g');\n });\n\n function parseText(text, delimiters) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return;\n }\n var tokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match = void 0,\n index = void 0;\n while (match = tagRE.exec(text)) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n tokens.push(JSON.stringify(text.slice(lastIndex, index)));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push('_s(' + exp + ')');\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n tokens.push(JSON.stringify(text.slice(lastIndex)));\n }\n return tokens.join('+');\n }\n\n function baseWarn(msg) {\n console.error('[Vue parser]: ' + msg);\n }\n\n function pluckModuleFunction(modules, key) {\n return modules ? modules.map(function (m) {\n return m[key];\n }).filter(function (_) {\n return _;\n }) : [];\n }\n\n function addProp(el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n }\n\n function addAttr(el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n }\n\n function addStaticAttr(el, name, value) {\n (el.staticAttrs || (el.staticAttrs = [])).push({ name: name, value: value });\n }\n\n function addDirective(el, name, value, arg, modifiers) {\n (el.directives || (el.directives = [])).push({ name: name, value: value, arg: arg, modifiers: modifiers });\n }\n\n function addHook$1(el, name, code) {\n var hooks = el.hooks || (el.hooks = {});\n var hook = hooks[name];\n /* istanbul ignore if */\n if (hook) {\n hook.push(code);\n } else {\n hooks[name] = [code];\n }\n }\n\n function addHandler(el, name, value, modifiers) {\n var events = el.events || (el.events = {});\n // check capture modifier\n if (modifiers && modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n var newHandler = { value: value, modifiers: modifiers };\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n handlers.push(newHandler);\n } else if (handlers) {\n events[name] = [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n }\n\n function getBindingAttr(el, name, getStatic) {\n var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return dynamicValue;\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue);\n }\n }\n }\n\n function getAndRemoveAttr(el, name) {\n var val = void 0;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break;\n }\n }\n }\n return val;\n }\n\n var dirRE = /^v-|^@|^:/;\n var forAliasRE = /(.*)\\s+(?:in|of)\\s+(.*)/;\n var forIteratorRE = /\\(([^,]*),([^,]*)(?:,([^,]*))?\\)/;\n var bindRE = /^:|^v-bind:/;\n var onRE = /^@|^v-on:/;\n var argRE = /:(.*)$/;\n var modifierRE = /\\.[^\\.]+/g;\n var camelRE = /[a-z\\d][A-Z]/;\n\n var decodeHTMLCached = cached(decodeHTML);\n\n // configurable state\n var warn$1 = void 0;\n var platformGetTagNamespace = void 0;\n var platformMustUseProp = void 0;\n var preTransforms = void 0;\n var transforms = void 0;\n var postTransforms = void 0;\n var delimiters = void 0;\n\n /**\n * Convert HTML string to AST.\n */\n function parse(template, options) {\n warn$1 = options.warn || baseWarn;\n platformGetTagNamespace = options.getTagNamespace || no;\n platformMustUseProp = options.mustUseProp || no;\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n delimiters = options.delimiters;\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root = void 0;\n var currentParent = void 0;\n var inPre = false;\n var warned = false;\n parseHTML(template, {\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n start: function start(tag, attrs, unary) {\n // check camelCase tag\n if (camelRE.test(tag)) {\n \"development\" !== 'production' && warn$1('Found camelCase tag in template: <' + tag + '>. ' + ('I\\'ve converted it to <' + hyphenate(tag) + '> for you.'));\n tag = hyphenate(tag);\n }\n\n tag = tag.toLowerCase();\n\n // check namespace.\n // inherit parent ns if there is one\n var ns = currentParent && currentParent.ns || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (options.isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: currentParent,\n children: []\n };\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element)) {\n element.forbidden = true;\n \"development\" !== 'production' && warn$1('Templates should only be responsbile for mapping the state to the ' + 'UI. Avoid placing tags with side-effects in your templates, such as ' + ('<' + tag + '>.'));\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n preTransforms[i](element, options);\n }\n\n if (!inPre) {\n processPre(element);\n if (element.pre) {\n inPre = true;\n }\n }\n if (inPre) {\n processRawAttrs(element);\n } else {\n processFor(element);\n processIf(element);\n processOnce(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !attrs.length;\n\n processKey(element);\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var _i = 0; _i < transforms.length; _i++) {\n transforms[_i](element, options);\n }\n processAttrs(element);\n }\n\n // tree management\n if (!root) {\n root = element;\n // check root element constraints\n if (\"development\" !== 'production') {\n if (tag === 'slot' || tag === 'template') {\n warn$1('Cannot use <' + tag + '> as component root element because it may ' + 'contain multiple nodes:\\n' + template);\n }\n if (element.attrsMap.hasOwnProperty('v-for')) {\n warn$1('Cannot use v-for on stateful component root element because ' + 'it renders multiple elements:\\n' + template);\n }\n }\n } else if (\"development\" !== 'production' && !stack.length && !warned) {\n warned = true;\n warn$1('Component template should contain exactly one root element:\\n\\n' + template);\n }\n if (currentParent && !element.forbidden) {\n if (element.else) {\n processElse(element, currentParent);\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n }\n // apply post-transforms\n for (var _i2 = 0; _i2 < postTransforms.length; _i2++) {\n postTransforms[_i2](element, options);\n }\n },\n end: function end() {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ') {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n // check pre state\n if (element.pre) {\n inPre = false;\n }\n },\n chars: function chars(text) {\n if (!currentParent) {\n if (\"development\" !== 'production' && !warned) {\n warned = true;\n warn$1('Component template should contain exactly one root element:\\n\\n' + template);\n }\n return;\n }\n text = currentParent.tag === 'pre' || text.trim() ? decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && currentParent.children.length ? ' ' : '';\n if (text) {\n var expression = void 0;\n if (!inPre && text !== ' ' && (expression = parseText(text, delimiters))) {\n currentParent.children.push({\n type: 2,\n expression: expression,\n text: text\n });\n } else {\n currentParent.children.push({\n type: 3,\n text: text\n });\n }\n }\n }\n });\n return root;\n }\n\n function processPre(el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n }\n\n function processRawAttrs(el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.staticAttrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n }\n\n function processKey(el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n el.key = exp;\n }\n }\n\n function processRef(el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n el.refInFor = true;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n function processFor(el) {\n var exp = void 0;\n if (exp = getAndRemoveAttr(el, 'v-for')) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) {\n \"development\" !== 'production' && warn$1('Invalid v-for expression: ' + exp);\n return;\n }\n el.for = inMatch[2].trim();\n var alias = inMatch[1].trim();\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n el.alias = iteratorMatch[1].trim();\n el.iterator1 = iteratorMatch[2].trim();\n if (iteratorMatch[3]) {\n el.iterator2 = iteratorMatch[3].trim();\n }\n } else {\n el.alias = alias;\n }\n }\n }\n\n function processIf(el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n }\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n }\n\n function processElse(el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n prev.elseBlock = el;\n } else if (\"development\" !== 'production') {\n warn$1('v-else used on element <' + el.tag + '> without corresponding v-if.');\n }\n }\n\n function processOnce(el) {\n var once = getAndRemoveAttr(el, 'v-once');\n if (once != null) {\n el.once = true;\n }\n }\n\n function processSlot(el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n } else {\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget;\n }\n }\n }\n\n function processComponent(el) {\n var binding = void 0;\n if (binding = getBindingAttr(el, 'is')) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'keep-alive') != null) {\n el.keepAlive = true;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n }\n\n function processAttrs(el) {\n var list = el.attrsList;\n var i = void 0,\n l = void 0,\n name = void 0,\n value = void 0,\n arg = void 0,\n modifiers = void 0;\n for (i = 0, l = list.length; i < l; i++) {\n name = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) {\n // v-bind\n name = name.replace(bindRE, '');\n if (platformMustUseProp(name)) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) {\n // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers);\n } else {\n // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n if (argMatch && (arg = argMatch[1])) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, value, arg, modifiers);\n }\n } else {\n // literal attribute\n if (\"development\" !== 'production') {\n var expression = parseText(value, delimiters);\n if (expression) {\n warn$1(name + '=\"' + value + '\": ' + 'Interpolation inside attributes has been deprecated. ' + 'Use v-bind or the colon shorthand instead.');\n }\n }\n addStaticAttr(el, name, JSON.stringify(value));\n }\n }\n }\n\n function parseModifiers(name) {\n var match = name.match(modifierRE);\n if (match) {\n var _ret = function () {\n var ret = {};\n match.forEach(function (m) {\n ret[m.slice(1)] = true;\n });\n return {\n v: ret\n };\n }();\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n }\n\n function makeAttrsMap(attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\"development\" !== 'production' && map[attrs[i].name]) {\n warn$1('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map;\n }\n\n function findPrevElement(children) {\n var i = children.length;\n while (i--) {\n if (children[i].tag) return children[i];\n }\n }\n\n function isForbiddenTag(el) {\n return el.tag === 'style' || el.tag === 'script' && (!el.attrsMap.type || el.attrsMap.type === 'text/javascript');\n }\n\n var ieNSBug = /^xmlns:NS\\d+/;\n var ieNSPrefix = /^NS\\d+:/;\n\n /* istanbul ignore next */\n function guardIESVGBug(attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res;\n }\n\n var isStaticKey = void 0;\n var isPlatformReservedTag = void 0;\n\n var genStaticKeysCached = cached(genStaticKeys$1);\n\n /**\n * Goal of the optimizier: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\n function optimize(root, options) {\n if (!root) return;\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || function () {\n return false;\n };\n // first pass: mark all non-static nodes.\n markStatic(root);\n // second pass: mark static roots.\n markStaticRoots(root);\n }\n\n function genStaticKeys$1(keys) {\n return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,staticAttrs' + (keys ? ',' + keys : ''));\n }\n\n function markStatic(node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic(child);\n if (!child.static) {\n node.static = false;\n }\n }\n }\n }\n\n function markStaticRoots(node) {\n if (node.type === 1 && (node.once || node.static)) {\n node.staticRoot = true;\n return;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i]);\n }\n }\n }\n\n function isStatic(node) {\n if (node.type === 2) {\n // expression\n return false;\n }\n if (node.type === 3) {\n // text\n return true;\n }\n return !!(node.pre || !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && ( // not a component\n node.plain || Object.keys(node).every(isStaticKey)) // no dynamic bindings\n );\n }\n\n var simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['.*?'\\]|\\[\".*?\"\\]|\\[\\d+\\]|\\[[A-Za-z_$][\\w$]*\\])*$/;\n\n // keyCode aliases\n var keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n };\n\n var modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: 'if($event.target !== $event.currentTarget)return;'\n };\n\n function genHandlers(events) {\n var res = 'on:{';\n for (var name in events) {\n res += '\"' + name + '\":' + genHandler(events[name]) + ',';\n }\n return res.slice(0, -1) + '}';\n }\n\n function genHandler(handler) {\n if (!handler) {\n return 'function(){}';\n } else if (Array.isArray(handler)) {\n return '[' + handler.map(genHandler).join(',') + ']';\n } else if (!handler.modifiers) {\n return simplePathRE.test(handler.value) ? handler.value : 'function($event){' + handler.value + '}';\n } else {\n var code = 'function($event){';\n for (var key in handler.modifiers) {\n code += modifierCode[key] || genKeyFilter(key);\n }\n var handlerCode = simplePathRE.test(handler.value) ? handler.value + '($event)' : handler.value;\n return code + handlerCode + '}';\n }\n }\n\n function genKeyFilter(key) {\n var code = parseInt(key, 10) || // number keyCode\n keyCodes[key] || // built-in alias\n '_k(' + JSON.stringify(key) + ')'; // custom alias\n if (Array.isArray(code)) {\n return 'if(' + code.map(function (c) {\n return '$event.keyCode!==' + c;\n }).join('&&') + ')return;';\n } else {\n return 'if($event.keyCode!==' + code + ')return;';\n }\n }\n\n function bind$1(el, dir) {\n addHook$1(el, 'construct', '_b(n1,' + dir.value + ')');\n }\n\n var baseDirectives = {\n bind: bind$1,\n cloak: noop\n };\n\n // configurable state\n var warn$2 = void 0;\n var transforms$1 = void 0;\n var dataGenFns = void 0;\n var platformDirectives$1 = void 0;\n var isPlatformReservedTag$1 = void 0;\n var staticRenderFns = void 0;\n var currentOptions = void 0;\n\n function generate(ast, options) {\n // save previous staticRenderFns so generate calls can be nested\n var prevStaticRenderFns = staticRenderFns;\n var currentStaticRenderFns = staticRenderFns = [];\n currentOptions = options;\n warn$2 = options.warn || baseWarn;\n transforms$1 = pluckModuleFunction(options.modules, 'transformCode');\n dataGenFns = pluckModuleFunction(options.modules, 'genData');\n platformDirectives$1 = options.directives || {};\n isPlatformReservedTag$1 = options.isReservedTag || no;\n var code = ast ? genElement(ast) : '_h(\"div\")';\n staticRenderFns = prevStaticRenderFns;\n return {\n render: 'with(this){return ' + code + '}',\n staticRenderFns: currentStaticRenderFns\n };\n }\n\n function genElement(el) {\n if (el.staticRoot && !el.staticProcessed) {\n // hoist static sub-trees out\n el.staticProcessed = true;\n staticRenderFns.push('with(this){return ' + genElement(el) + '}');\n return '_m(' + (staticRenderFns.length - 1) + ')';\n } else if (el.for && !el.forProcessed) {\n return genFor(el);\n } else if (el.if && !el.ifProcessed) {\n return genIf(el);\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el) || 'void 0';\n } else if (el.tag === 'slot') {\n return genSlot(el);\n } else {\n // component or element\n var code = void 0;\n if (el.component) {\n code = genComponent(el);\n } else {\n var data = genData(el);\n // if the element is potentially a component,\n // wrap its children as a thunk.\n var children = !el.inlineTemplate ? genChildren(el, !el.ns && !isPlatformReservedTag$1(el.tag) /* asThunk */) : null;\n code = '_h(\\'' + el.tag + '\\'' + (data ? ',' + data : '' // data\n ) + (children ? ',' + children : '' // children\n ) + ')';\n }\n // module transforms\n for (var i = 0; i < transforms$1.length; i++) {\n code = transforms$1[i](el, code);\n }\n // check keep-alive\n if (el.component && el.keepAlive) {\n code = '_h(\"KeepAlive\",{props:{child:' + code + '}})';\n }\n return code;\n }\n }\n\n function genIf(el) {\n var exp = el.if;\n el.ifProcessed = true; // avoid recursion\n return '(' + exp + ')?' + genElement(el) + ':' + genElse(el);\n }\n\n function genElse(el) {\n return el.elseBlock ? genElement(el.elseBlock) : 'void 0';\n }\n\n function genFor(el) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? ',' + el.iterator1 : '';\n var iterator2 = el.iterator2 ? ',' + el.iterator2 : '';\n el.forProcessed = true; // avoid recursion\n return '(' + exp + ')&&_l((' + exp + '),' + ('function(' + alias + iterator1 + iterator2 + '){') + ('return ' + genElement(el)) + '})';\n }\n\n function genData(el) {\n if (el.plain) {\n return;\n }\n\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el);\n if (dirs) data += dirs + ',';\n\n // key\n if (el.key) {\n data += 'key:' + el.key + ',';\n }\n // ref\n if (el.ref) {\n data += 'ref:' + el.ref + ',';\n }\n if (el.refInFor) {\n data += 'refInFor:true,';\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += 'tag:\"' + el.tag + '\",';\n }\n // slot target\n if (el.slotTarget) {\n data += 'slot:' + el.slotTarget + ',';\n }\n // module data generation functions\n for (var i = 0; i < dataGenFns.length; i++) {\n data += dataGenFns[i](el);\n }\n // v-show, used to avoid transition being applied\n // since v-show takes it over\n if (el.attrsMap['v-show']) {\n data += 'show:true,';\n }\n // props\n if (el.props) {\n data += 'props:{' + genProps(el.props) + '},';\n }\n // attributes\n if (el.attrs) {\n data += 'attrs:{' + genProps(el.attrs) + '},';\n }\n // static attributes\n if (el.staticAttrs) {\n data += 'staticAttrs:{' + genProps(el.staticAttrs) + '},';\n }\n // hooks\n if (el.hooks) {\n data += 'hook:{' + genHooks(el.hooks) + '},';\n }\n // event handlers\n if (el.events) {\n data += genHandlers(el.events) + ',';\n }\n // inline-template\n if (el.inlineTemplate) {\n var ast = el.children[0];\n if (\"development\" !== 'production' && (el.children.length > 1 || ast.type !== 1)) {\n warn$2('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, currentOptions);\n data += 'inlineTemplate:{render:function(){' + inlineRenderFns.render + '},staticRenderFns:[' + inlineRenderFns.staticRenderFns.map(function (code) {\n return 'function(){' + code + '}';\n }).join(',') + ']}';\n }\n }\n return data.replace(/,$/, '') + '}';\n }\n\n function genDirectives(el) {\n var dirs = el.directives;\n if (!dirs) return;\n var res = 'directives:[';\n var hasRuntime = false;\n var i = void 0,\n l = void 0,\n dir = void 0,\n needRuntime = void 0;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = platformDirectives$1[dir.name] || baseDirectives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, warn$2);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += '{name:\"' + dir.name + '\"' + (dir.value ? ',value:(' + dir.value + '),expression:' + JSON.stringify(dir.value) : '') + (dir.arg ? ',arg:\"' + dir.arg + '\"' : '') + (dir.modifiers ? ',modifiers:' + JSON.stringify(dir.modifiers) : '') + '},';\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']';\n }\n }\n\n function genChildren(el, asThunk) {\n if (!el.children.length) {\n return;\n }\n var code = '[' + el.children.map(genNode).join(',') + ']';\n return asThunk ? 'function(){return ' + code + '}' : code;\n }\n\n function genNode(node) {\n if (node.type === 1) {\n return genElement(node);\n } else {\n return genText(node);\n }\n }\n\n function genText(text) {\n return text.type === 2 ? text.expression // no need for () because already wrapped in _s()\n : JSON.stringify(text.text);\n }\n\n function genSlot(el) {\n var slot = '$slots[' + (el.slotName || '\"default\"') + ']';\n var children = genChildren(el);\n return children ? '(' + slot + '||' + children + ')' : slot;\n }\n\n function genComponent(el) {\n var children = genChildren(el, true);\n return '_h(' + el.component + ',' + genData(el) + (children ? ',' + children : '') + ')';\n }\n\n function genProps(props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n res += '\"' + prop.name + '\":' + prop.value + ',';\n }\n return res.slice(0, -1);\n }\n\n function genHooks(hooks) {\n var res = '';\n for (var _key in hooks) {\n res += '\"' + _key + '\":function(n1,n2){' + hooks[_key].join(';') + '},';\n }\n return res.slice(0, -1);\n }\n\n /**\n * Compile a template.\n */\n function compile$1(template, options) {\n var ast = parse(template.trim(), options);\n optimize(ast, options);\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n };\n }\n\n // operators like typeof, instanceof and in are allowed\n var prohibitedKeywordRE = new RegExp('\\\\b' + ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + 'super,throw,while,yield,delete,export,import,return,switch,default,' + 'extends,finally,continue,debugger,function,arguments').split(',').join('\\\\b|\\\\b') + '\\\\b');\n // check valid identifier for v-for\n var identRE = /[A-Za-z_$][\\w$]*/;\n // strip strings in expressions\n var stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n // detect problematic expressions in a template\n function detectErrors(ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors;\n }\n\n function checkNode(node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, 'v-for=\"' + value + '\"', errors);\n } else {\n checkExpression(value, name + '=\"' + value + '\"', errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n }\n\n function checkFor(node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n }\n\n function checkIdentifier(ident, type, text, errors) {\n if (typeof ident === 'string' && !identRE.test(ident)) {\n errors.push('- invalid ' + type + ' \"' + ident + '\" in expression: ' + text);\n }\n }\n\n function checkExpression(exp, text, errors) {\n try {\n new Function('return ' + exp);\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push('- avoid using JavaScript keyword as property name: ' + ('\"' + keywordMatch[0] + '\" in expression ' + text));\n } else {\n errors.push('- invalid expression: ' + text);\n }\n }\n }\n\n function transformNode(el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (\"development\" !== 'production' && staticClass) {\n var expression = parseText(staticClass, options.delimiters);\n if (expression) {\n warn('class=\"' + staticClass + '\": ' + 'Interpolation inside attributes has been deprecated. ' + 'Use v-bind or the colon shorthand instead.');\n }\n }\n el.staticClass = JSON.stringify(staticClass);\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n }\n\n function genData$1(el) {\n var data = '';\n if (el.staticClass) {\n data += 'staticClass:' + el.staticClass + ',';\n }\n if (el.classBinding) {\n data += 'class:' + el.classBinding + ',';\n }\n return data;\n }\n\n var klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData$1\n };\n\n function transformNode$1(el) {\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n }\n\n function genData$2(el) {\n return el.styleBinding ? 'style:(' + el.styleBinding + '),' : '';\n }\n\n var style$1 = {\n transformNode: transformNode$1,\n genData: genData$2\n };\n\n function transformNode$2(el) {\n var transition = getBindingAttr(el, 'transition');\n if (transition === '\"\"') {\n transition = true;\n }\n if (transition) {\n el.transition = transition;\n }\n var mode = getBindingAttr(el, 'transition-mode');\n if (mode) {\n el.transitionMode = mode;\n }\n }\n\n function genData$3(el) {\n return el.transition ? 'transition:' + el.transition + ',' : '';\n }\n\n function transformCode(el, code) {\n return el.transitionMode ? '_h(\\'TransitionControl\\',{props:{mode:' + el.transitionMode + ',child:' + code + '}})' : code;\n }\n\n var transition$1 = {\n transformNode: transformNode$2,\n genData: genData$3,\n transformCode: transformCode\n };\n\n var modules$1 = [klass$1, style$1, transition$1];\n\n var warn$3 = void 0;\n\n function model$1(el, dir, _warn) {\n warn$3 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n if (el.tag === 'select') {\n return genSelect(el, value);\n } else {\n switch (el.attrsMap.type) {\n case 'checkbox':\n genCheckboxModel(el, value);\n break;\n case 'radio':\n genRadioModel(el, value);\n break;\n default:\n return genDefaultModel(el, value, modifiers);\n }\n }\n }\n\n function genCheckboxModel(el, value) {\n if (\"development\" !== 'production' && el.attrsMap.checked != null) {\n warn$3('<' + el.tag + ' v-model=\"' + value + '\" checked>:\\n' + 'inline checked attributes will be ignored when using v-model. ' + 'Declare initial values in the component\\'s data option instead.');\n }\n var valueBinding = getBindingAttr(el, 'value');\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked', 'Array.isArray(' + value + ')' + ('?(' + value + ').indexOf(' + valueBinding + ')>-1') + (':(' + value + ')===(' + trueValueBinding + ')'));\n addHandler(el, 'change', 'var $$a=' + value + ',' + '$$el=$event.target,' + ('$$c=$$el.checked?(' + trueValueBinding + '):(' + falseValueBinding + ');') + 'if(Array.isArray($$a)){' + ('var $$v=' + valueBinding + ',') + '$$i=$$a.indexOf($$v);' + 'if($$c){$$i<0&&$$a.push($$v)}' + 'else{$$i>-1&&$$a.splice($$i,1)}' + ('}else{' + value + '=$$c}'));\n }\n\n function genRadioModel(el, value) {\n if (\"development\" !== 'production' && el.attrsMap.checked != null) {\n warn$3('<' + el.tag + ' v-model=\"' + value + '\" checked>:\\n' + 'inline checked attributes will be ignored when using v-model. ' + 'Declare initial values in the component\\'s data option instead.');\n }\n var valueBinding = getBindingAttr(el, 'value');\n addProp(el, 'checked', '(' + value + ')===(' + valueBinding + ')');\n addHandler(el, 'change', value + '=' + valueBinding);\n }\n\n function genDefaultModel(el, value, modifiers) {\n if (\"development\" !== 'production') {\n if (el.tag === 'input' && el.attrsMap.value) {\n warn$3('<' + el.tag + ' v-model=\"' + value + '\" value=\"' + el.attrsMap.value + '\">:\\n' + 'inline value attributes will be ignored when using v-model. ' + 'Declare initial values in the component\\'s data option instead.');\n }\n if (el.tag === 'textarea' && el.children.length) {\n warn$3('