(function(){var d=this,pt=d._,c={},r=Array.prototype,ft=Object.prototype,at=Function.prototype,a=r.push,t=r.slice,l=r.concat,f=ft.toString,wt=ft.hasOwnProperty,nt=r.forEach,st=r.map,ot=r.reduce,g=r.reduceRight,ut=r.filter,rt=r.every,tt=r.some,e=r.indexOf,et=r.lastIndexOf,lt=Array.isArray,yt=Object.keys,k=at.bind,n=function(t){if(t instanceof n)return t;if(!(this instanceof n))return new n(t);this._wrapped=t},i,b,w,s,p,y,o,u,ht,it,h;typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=n),exports._=n):d._=n,n.VERSION="1.4.4",i=n.each=n.forEach=function(t,i,r){var u,e,f;if(t!=null)if(nt&&t.forEach===nt)t.forEach(i,r);else if(t.length===+t.length){for(u=0,e=t.length;u<e;u++)if(i.call(r,t[u],u,t)===c)return}else for(f in t)if(n.has(t,f)&&i.call(r,t[f],f,t)===c)return},n.map=n.collect=function(n,t,r){var u=[];return n==null?u:st&&n.map===st?n.map(t,r):(i(n,function(n,i,f){u[u.length]=t.call(r,n,i,f)}),u)},b="Reduce of empty array with no initial value",n.reduce=n.foldl=n.inject=function(t,r,u,f){var e=arguments.length>2;if(t==null&&(t=[]),ot&&t.reduce===ot)return f&&(r=n.bind(r,f)),e?t.reduce(r,u):t.reduce(r);if(i(t,function(n,t,i){e?u=r.call(f,u,n,t,i):(u=n,e=!0)}),!e)throw new TypeError(b);return u},n.reduceRight=n.foldr=function(t,r,u,f){var o=arguments.length>2,e,s;if(t==null&&(t=[]),g&&t.reduceRight===g)return f&&(r=n.bind(r,f)),o?t.reduceRight(r,u):t.reduceRight(r);if(e=t.length,e!==+e&&(s=n.keys(t),e=s.length),i(t,function(n,i,h){i=s?s[--e]:--e,o?u=r.call(f,u,t[i],i,h):(u=t[i],o=!0)}),!o)throw new TypeError(b);return u},n.find=n.detect=function(n,t,i){var r;return w(n,function(n,u,f){if(t.call(i,n,u,f))return r=n,!0}),r},n.filter=n.select=function(n,t,r){var u=[];return n==null?u:ut&&n.filter===ut?n.filter(t,r):(i(n,function(n,i,f){t.call(r,n,i,f)&&(u[u.length]=n)}),u)},n.reject=function(t,i,r){return n.filter(t,function(n,t,u){return!i.call(r,n,t,u)},r)},n.every=n.all=function(t,r,u){r||(r=n.identity);var f=!0;return t==null?f:rt&&t.every===rt?t.every(r,u):(i(t,function(n,t,i){if(!(f=f&&r.call(u,n,t,i)))return c}),!!f)},w=n.some=n.any=function(t,r,u){r||(r=n.identity);var f=!1;return t==null?f:tt&&t.some===tt?t.some(r,u):(i(t,function(n,t,i){if(f||(f=r.call(u,n,t,i)))return c}),!!f)},n.contains=n.include=function(n,t){return n==null?!1:e&&n.indexOf===e?n.indexOf(t)!=-1:w(n,function(n){return n===t})},n.invoke=function(i,r){var u=t.call(arguments,2),f=n.isFunction(r);return n.map(i,function(n){return(f?r:n[r]).apply(n,u)})},n.pluck=function(t,i){return n.map(t,function(n){return n[i]})},n.where=function(t,i,r){return n.isEmpty(i)?r?null:[]:n[r?"find":"filter"](t,function(n){for(var t in i)if(i[t]!==n[t])return!1;return!0})},n.findWhere=function(t,i){return n.where(t,i,!0)},n.max=function(t,r,u){if(!r&&n.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.max.apply(Math,t);if(!r&&n.isEmpty(t))return-Infinity;var f={computed:-Infinity,value:-Infinity};return i(t,function(n,t,i){var e=r?r.call(u,n,t,i):n;e>=f.computed&&(f={value:n,computed:e})}),f.value},n.min=function(t,r,u){if(!r&&n.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.min.apply(Math,t);if(!r&&n.isEmpty(t))return Infinity;var f={computed:Infinity,value:Infinity};return i(t,function(n,t,i){var e=r?r.call(u,n,t,i):n;e<f.computed&&(f={value:n,computed:e})}),f.value},n.shuffle=function(t){var u,f=0,r=[];return i(t,function(t){u=n.random(f++),r[f-1]=r[u],r[u]=t}),r},s=function(t){return n.isFunction(t)?t:function(n){return n[t]}},n.sortBy=function(t,i,r){var u=s(i);return n.pluck(n.map(t,function(n,t,i){return{value:n,index:t,criteria:u.call(r,n,t,i)}}).sort(function(n,t){var i=n.criteria,r=t.criteria;if(i!==r){if(i>r||i===void 0)return 1;if(i<r||r===void 0)return-1}return n.index<t.index?-1:1}),"value")},p=function(t,r,u,f){var e={},o=s(r||n.identity);return i(t,function(n,i){var r=o.call(u,n,i,t);f(e,r,n)}),e},n.groupBy=function(t,i,r){return p(t,i,r,function(t,i,r){(n.has(t,i)?t[i]:t[i]=[]).push(r)})},n.countBy=function(t,i,r){return p(t,i,r,function(t,i){n.has(t,i)||(t[i]=0),t[i]++})},n.sortedIndex=function(t,i,r,u){var e;r=r==null?n.identity:s(r);for(var h=r.call(u,i),f=0,o=t.length;f<o;)e=f+o>>>1,r.call(u,t[e])<h?f=e+1:o=e;return f},n.toArray=function(i){return i?n.isArray(i)?t.call(i):i.length===+i.length?n.map(i,n.identity):n.values(i):[]},n.size=function(t){return t==null?0:t.length===+t.length?t.length:n.keys(t).length},n.first=n.head=n.take=function(n,i,r){if(n!=null)return i!=null&&!r?t.call(n,0,i):n[0]},n.initial=function(n,i,r){return t.call(n,0,n.length-(i==null||r?1:i))},n.last=function(n,i,r){if(n!=null)return i==null||r?n[n.length-1]:t.call(n,Math.max(n.length-i,0))},n.rest=n.tail=n.drop=function(n,i,r){return t.call(n,i==null||r?1:i)},n.compact=function(t){return n.filter(t,n.identity)},y=function(t,r,u){return i(t,function(t){n.isArray(t)?r?a.apply(u,t):y(t,r,u):u.push(t)}),u},n.flatten=function(n,t){return y(n,t,[])},n.without=function(i){return n.difference(i,t.call(arguments,1))},n.uniq=n.unique=function(t,r,u,f){n.isFunction(r)&&(f=u,u=r,r=!1);var s=u?n.map(t,u,f):t,o=[],e=[];return i(s,function(i,u){(r?u&&e[e.length-1]===i:n.contains(e,i))||(e.push(i),o.push(t[u]))}),o},n.union=function(){return n.uniq(l.apply(r,arguments))},n.intersection=function(i){var r=t.call(arguments,1);return n.filter(n.uniq(i),function(t){return n.every(r,function(i){return n.indexOf(i,t)>=0})})},n.difference=function(i){var u=l.apply(r,t.call(arguments,1));return n.filter(i,function(t){return!n.contains(u,t)})},n.zip=function(){for(var r=t.call(arguments),u=n.max(n.pluck(r,"length")),f=new Array(u),i=0;i<u;i++)f[i]=n.pluck(r,""+i);return f},n.object=function(n,t){var r,i,u;if(n==null)return{};for(r={},i=0,u=n.length;i<u;i++)t?r[n[i]]=t[i]:r[n[i][0]]=n[i][1];return r},n.indexOf=function(t,i,r){if(t==null)return-1;var u=0,f=t.length;if(r)if(typeof r=="number")u=r<0?Math.max(0,f+r):r;else return u=n.sortedIndex(t,i),t[u]===i?u:-1;if(e&&t.indexOf===e)return t.indexOf(i,r);for(;u<f;u++)if(t[u]===i)return u;return-1},n.lastIndexOf=function(n,t,i){var u,r;if(n==null)return-1;if(u=i!=null,et&&n.lastIndexOf===et)return u?n.lastIndexOf(t,i):n.lastIndexOf(t);for(r=u?i:n.length;r--;)if(n[r]===t)return r;return-1},n.range=function(n,t,i){arguments.length<=1&&(t=n||0,n=0),i=arguments[2]||1;for(var r=Math.max(Math.ceil((t-n)/i),0),u=0,f=new Array(r);u<r;)f[u++]=n,n+=i;return f},n.bind=function(n,i){if(n.bind===k&&k)return k.apply(n,t.call(arguments,1));var r=t.call(arguments,2);return function(){return n.apply(i,r.concat(t.call(arguments)))}},n.partial=function(n){var i=t.call(arguments,1);return function(){return n.apply(this,i.concat(t.call(arguments)))}},n.bindAll=function(r){var u=t.call(arguments,1);return u.length===0&&(u=n.functions(r)),i(u,function(t){r[t]=n.bind(r[t],r)}),r},n.memoize=function(t,i){var r={};return i||(i=n.identity),function(){var u=i.apply(this,arguments);return n.has(r,u)?r[u]:r[u]=t.apply(this,arguments)}},n.delay=function(n,i){var r=t.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},i)},n.defer=function(i){return n.delay.apply(n,[i,1].concat(t.call(arguments,1)))},n.throttle=function(n,t){var r,u,i,f,e=0,o=function(){e=new Date,i=null,f=n.apply(r,u)};return function(){var s=new Date,h=t-(s-e);return r=this,u=arguments,h<=0?(clearTimeout(i),i=null,e=s,f=n.apply(r,u)):i||(i=setTimeout(o,h)),f}},n.debounce=function(n,t,i){var r,u;return function(){var f=this,e=arguments,o=function(){r=null,i||(u=n.apply(f,e))},s=i&&!r;return clearTimeout(r),r=setTimeout(o,t),s&&(u=n.apply(f,e)),u}},n.once=function(n){var i=!1,t;return function(){return i?t:(i=!0,t=n.apply(this,arguments),n=null,t)}},n.wrap=function(n,t){return function(){var i=[n];return a.apply(i,arguments),t.apply(this,i)}},n.compose=function(){var n=arguments;return function(){for(var i=arguments,t=n.length-1;t>=0;t--)i=[n[t].apply(this,i)];return i[0]}},n.after=function(n,t){return n<=0?t():function(){if(--n<1)return t.apply(this,arguments)}},n.keys=yt||function(t){var i,r;if(t!==Object(t))throw new TypeError("Invalid object");i=[];for(r in t)n.has(t,r)&&(i[i.length]=r);return i},n.values=function(t){var r=[],i;for(i in t)n.has(t,i)&&r.push(t[i]);return r},n.pairs=function(t){var r=[],i;for(i in t)n.has(t,i)&&r.push([i,t[i]]);return r},n.invert=function(t){var r={},i;for(i in t)n.has(t,i)&&(r[t[i]]=i);return r},n.functions=n.methods=function(t){var r=[],i;for(i in t)n.isFunction(t[i])&&r.push(i);return r.sort()},n.extend=function(n){return i(t.call(arguments,1),function(t){if(t)for(var i in t)n[i]=t[i]}),n},n.pick=function(n){var u={},f=l.apply(r,t.call(arguments,1));return i(f,function(t){t in n&&(u[t]=n[t])}),u},n.omit=function(i){var f={},e=l.apply(r,t.call(arguments,1)),u;for(u in i)n.contains(e,u)||(f[u]=i[u]);return f},n.defaults=function(n){return i(t.call(arguments,1),function(t){if(t)for(var i in t)n[i]==null&&(n[i]=t[i])}),n},n.clone=function(t){return n.isObject(t)?n.isArray(t)?t.slice():n.extend({},t):t},n.tap=function(n,t){return t(n),n},o=function(t,i,r,u){var a,v,e,s,c,l,h;if(t===i)return t!==0||1/t==1/i;if(t==null||i==null)return t===i;if(t instanceof n&&(t=t._wrapped),i instanceof n&&(i=i._wrapped),a=f.call(t),a!=f.call(i))return!1;switch(a){case"[object String]":return t==String(i);case"[object Number]":return t!=+t?i!=+i:t==0?1/t==1/i:t==+i;case"[object Date]":case"[object Boolean]":return+t==+i;case"[object RegExp]":return t.source==i.source&&t.global==i.global&&t.multiline==i.multiline&&t.ignoreCase==i.ignoreCase}if(typeof t!="object"||typeof i!="object")return!1;for(v=r.length;v--;)if(r[v]==t)return u[v]==i;if(r.push(t),u.push(i),e=0,s=!0,a=="[object Array]"){if(e=t.length,s=e==i.length,s)while(e--)if(!(s=o(t[e],i[e],r,u)))break}else{if(c=t.constructor,l=i.constructor,c!==l&&!(n.isFunction(c)&&c instanceof c&&n.isFunction(l)&&l instanceof l))return!1;for(h in t)if(n.has(t,h)&&(e++,!(s=n.has(i,h)&&o(t[h],i[h],r,u))))break;if(s){for(h in i)if(n.has(i,h)&&!e--)break;s=!e}}return r.pop(),u.pop(),s},n.isEqual=function(n,t){return o(n,t,[],[])},n.isEmpty=function(t){if(t==null)return!0;if(n.isArray(t)||n.isString(t))return t.length===0;for(var i in t)if(n.has(t,i))return!1;return!0},n.isElement=function(n){return!!(n&&n.nodeType===1)},n.isArray=lt||function(n){return f.call(n)=="[object Array]"},n.isObject=function(n){return n===Object(n)},i(["Arguments","Function","String","Number","Date","RegExp"],function(t){n["is"+t]=function(n){return f.call(n)=="[object "+t+"]"}}),n.isArguments(arguments)||(n.isArguments=function(t){return!!(t&&n.has(t,"callee"))}),typeof/./!="function"&&(n.isFunction=function(n){return typeof n=="function"}),n.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},n.isNaN=function(t){return n.isNumber(t)&&t!=+t},n.isBoolean=function(n){return n===!0||n===!1||f.call(n)=="[object Boolean]"},n.isNull=function(n){return n===null},n.isUndefined=function(n){return n===void 0},n.has=function(n,t){return wt.call(n,t)},n.noConflict=function(){return d._=pt,this},n.identity=function(n){return n},n.times=function(n,t,i){for(var u=Array(n),r=0;r<n;r++)u[r]=t.call(i,r);return u},n.random=function(n,t){return t==null&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},u={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}},u.unescape=n.invert(u.escape),ht={escape:new RegExp("["+n.keys(u.escape).join("")+"]","g"),unescape:new RegExp("("+n.keys(u.unescape).join("|")+")","g")},n.each(["escape","unescape"],function(t){n[t]=function(n){return n==null?"":(""+n).replace(ht[t],function(n){return u[t][n]})}}),n.result=function(t,i){if(t==null)return null;var r=t[i];return n.isFunction(r)?r.call(t):r},n.mixin=function(t){i(n.functions(t),function(i){var r=n[i]=t[i];n.prototype[i]=function(){var t=[this._wrapped];return a.apply(t,arguments),h.call(this,r.apply(n,t))}})},it=0,n.uniqueId=function(n){var t=++it+"";return n?n+t:t},n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var v=/(.)^/,ct={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},vt=/\\|'|\r|\n|\t|\u2028|\u2029/g;n.template=function(t,i,r){var f,e;r=n.defaults({},r,n.templateSettings);var s=new RegExp([(r.escape||v).source,(r.interpolate||v).source,(r.evaluate||v).source].join("|")+"|$","g"),o=0,u="__p+='";t.replace(s,function(n,i,r,f,e){return u+=t.slice(o,e).replace(vt,function(n){return"\\"+ct[n]}),i&&(u+="'+\n((__t=("+i+"))==null?'':_.escape(__t))+\n'"),r&&(u+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),f&&(u+="';\n"+f+"\n__p+='"),o=e+n.length,n}),u+="';\n",r.variable||(u="with(obj||{}){\n"+u+"}\n"),u="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+u+"return __p;\n";try{f=new Function(r.variable||"obj","_",u)}catch(h){h.source=u;throw h;}return i?f(i,n):(e=function(t){return f.call(this,t,n)},e.source="function("+(r.variable||"obj")+"){\n"+u+"}",e)},n.chain=function(t){return n(t).chain()},h=function(t){return this._chain?n(t).chain():t},n.mixin(n),i(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var i=r[t];n.prototype[t]=function(){var n=this._wrapped;return i.apply(n,arguments),(t=="shift"||t=="splice")&&n.length===0&&delete n[0],h.call(this,n)}}),i(["concat","join","slice"],function(t){var i=r[t];n.prototype[t]=function(){return h.call(this,i.apply(this._wrapped,arguments))}}),n.extend(n.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this),function(){var r=this,rt=r.Backbone,c=[],yt=c.push,h=c.slice,lt=c.splice,t,n,f,w,b,d,g,k,a,l,e;t=typeof exports!="undefined"?exports:r.Backbone={},t.VERSION="1.0.0",n=r._,n||typeof require=="undefined"||(n=require("underscore")),t.$=r.jQuery||r.Zepto||r.ender||r.$,t.noConflict=function(){return r.Backbone=rt,this},t.emulateHTTP=!1,t.emulateJSON=!1;var i=t.Events={on:function(n,t,i){if(!o(this,"on",n,[t,i])||!t)return this;this._events||(this._events={});var r=this._events[n]||(this._events[n]=[]);return r.push({callback:t,context:i,ctx:i||this}),this},once:function(t,i,r){if(!o(this,"once",t,[i,r])||!i)return this;var f=this,u=n.once(function(){f.off(t,u),i.apply(this,arguments)});u._callback=i;return this.on(t,u,r)},off:function(t,i,r){var s,u,h,c,f,l,e,a;if(!this._events||!o(this,"off",t,[i,r]))return this;if(!t&&!i&&!r)return this._events={},this;for(c=t?[t]:n.keys(this._events),f=0,l=c.length;f<l;f++)if(t=c[f],h=this._events[t]){if(this._events[t]=s=[],i||r)for(e=0,a=h.length;e<a;e++)u=h[e],(i&&i!==u.callback&&i!==u.callback._callback||r&&r!==u.context)&&s.push(u);s.length||delete this._events[t]}return this},trigger:function(n){var t,i,r;return this._events?(t=h.call(arguments,1),!o(this,"trigger",n,t))?this:(i=this._events[n],r=this._events.all,i&&y(i,t),r&&y(r,arguments),this):this},stopListening:function(n,t,i){var r=this._listeners,f,u;if(!r)return this;f=!t&&!i,typeof t=="object"&&(i=this),n&&((r={})[n._listenerId]=n);for(u in r)r[u].off(t,i,this),f&&delete this._listeners[u];return this}},v=/\s+/,o=function(n,t,i,r){var f,e,u,o;if(!i)return!0;if(typeof i=="object"){for(f in i)n[t].apply(n,[f,i[f]].concat(r));return!1}if(v.test(i)){for(e=i.split(v),u=0,o=e.length;u<o;u++)n[t].apply(n,[e[u]].concat(r));return!1}return!0},y=function(n,t){var i,r=-1,u=n.length,f=t[0],e=t[1],o=t[2];switch(t.length){case 0:while(++r<u)(i=n[r]).callback.call(i.ctx);return;case 1:while(++r<u)(i=n[r]).callback.call(i.ctx,f);return;case 2:while(++r<u)(i=n[r]).callback.call(i.ctx,f,e);return;case 3:while(++r<u)(i=n[r]).callback.call(i.ctx,f,e,o);return;default:while(++r<u)(i=n[r]).callback.apply(i.ctx,t)}},vt={listenTo:"on",listenToOnce:"once"};n.each(vt,function(t,r){i[r]=function(i,r,u){var f=this._listeners||(this._listeners={}),e=i._listenerId||(i._listenerId=n.uniqueId("l"));return f[e]=i,typeof r=="object"&&(u=this),i[t](r,u,this),this}}),i.bind=i.on,i.unbind=i.off,n.extend(t,i),f=t.Model=function(t,i){var u,r=t||{};i||(i={}),this.cid=n.uniqueId("c"),this.attributes={},n.extend(this,n.pick(i,w)),i.parse&&(r=this.parse(r,i)||{}),(u=n.result(this,"defaults"))&&(r=n.defaults({},r,u)),this.set(r,i),this.changed={},this.initialize.apply(this,arguments)},w=["url","urlRoot","collection"],n.extend(f.prototype,i,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(){return n.clone(this.attributes)},sync:function(){return t.sync.apply(this,arguments)},get:function(n){return this.attributes[n]},escape:function(t){return n.escape(this.get(t))},has:function(n){return this.get(n)!=null},set:function(t,i,r){var u,f,l,e,h,c,a,o,s,v;if(t==null)return this;if(typeof t=="object"?(f=t,r=i):(f={})[t]=i,r||(r={}),!this._validate(f,r))return!1;l=r.unset,h=r.silent,e=[],c=this._changing,this._changing=!0,c||(this._previousAttributes=n.clone(this.attributes),this.changed={}),o=this.attributes,a=this._previousAttributes,this.idAttribute in f&&(this.id=f[this.idAttribute]);for(u in f)i=f[u],n.isEqual(o[u],i)||e.push(u),n.isEqual(a[u],i)?delete this.changed[u]:this.changed[u]=i,l?delete o[u]:o[u]=i;if(!h)for(e.length&&(this._pending=!0),s=0,v=e.length;s<v;s++)this.trigger("change:"+e[s],this,o[e[s]],r);if(c)return this;if(!h)while(this._pending)this._pending=!1,this.trigger("change",this,r);return this._pending=!1,this._changing=!1,this},unset:function(t,i){return this.set(t,void 0,n.extend({},i,{unset:!0}))},clear:function(t){var i={},r;for(r in this.attributes)i[r]=void 0;return this.set(i,n.extend({},t,{unset:!0}))},hasChanged:function(t){return t==null?!n.isEmpty(this.changed):n.has(this.changed,t)},changedAttributes:function(t){var u,i,f,r;if(!t)return this.hasChanged()?n.clone(this.changed):!1;i=!1,f=this._changing?this._previousAttributes:this.attributes;for(r in t)n.isEqual(f[r],u=t[r])||((i||(i={}))[r]=u);return i},previous:function(n){return n==null||!this._previousAttributes?null:this._previousAttributes[n]},previousAttributes:function(){return n.clone(this._previousAttributes)},fetch:function(t){t=t?n.clone(t):{},t.parse===void 0&&(t.parse=!0);var i=this,r=t.success;return t.success=function(n){if(!i.set(i.parse(n,t),t))return!1;r&&r(i,n,t),i.trigger("sync",i,n,t)},e(this,t),this.sync("read",this,t)},save:function(t,i,r){var u,o,c,s=this.attributes,f,h;return(t==null||typeof t=="object"?(u=t,r=i):(u={})[t]=i,u&&(!r||!r.wait)&&!this.set(u,r))?!1:(r=n.extend({validate:!0},r),!this._validate(u,r))?!1:(u&&r.wait&&(this.attributes=n.extend({},s,u)),r.parse===void 0&&(r.parse=!0),f=this,h=r.success,r.success=function(t){f.attributes=s;var i=f.parse(t,r);if(r.wait&&(i=n.extend(u||{},i)),n.isObject(i)&&!f.set(i,r))return!1;h&&h(f,t,r),f.trigger("sync",f,t,r)},e(this,r),o=this.isNew()?"create":r.patch?"patch":"update",o==="patch"&&(r.attrs=u),c=this.sync(o,this,r),u&&r.wait&&(this.attributes=s),c)},destroy:function(t){var f;t=t?n.clone(t):{};var i=this,r=t.success,u=function(){i.trigger("destroy",i,i.collection,t)};return(t.success=function(n){(t.wait||i.isNew())&&u(),r&&r(i,n,t),i.isNew()||i.trigger("sync",i,n,t)},this.isNew())?(t.success(),!1):(e(this,t),f=this.sync("delete",this,t),t.wait||u(),f)},url:function(){var t=n.result(this,"urlRoot")||n.result(this.collection,"url")||l();return this.isNew()?t:t+(t.charAt(t.length-1)==="/"?"":"/")+encodeURIComponent(this.id)},parse:function(n){return n},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return this.id==null},isValid:function(t){return this._validate({},n.extend(t||{},{validate:!0}))},_validate:function(t,i){if(!i.validate||!this.validate)return!0;t=n.extend({},this.attributes,t);var r=this.validationError=this.validate(t,i)||null;return r?(this.trigger("invalid",this,r,n.extend(i||{},{validationError:r})),!1):!0}}),b=["keys","values","pairs","invert","pick","omit"],n.each(b,function(t){f.prototype[t]=function(){var i=h.call(arguments);return i.unshift(this.attributes),n[t].apply(n,i)}});var s=t.Collection=function(t,i){i||(i={}),i.url&&(this.url=i.url),i.model&&(this.model=i.model),i.comparator!==void 0&&(this.comparator=i.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,n.extend({silent:!0},i))},at={add:!0,remove:!0,merge:!0},wt={add:!0,merge:!1,remove:!1};n.extend(s.prototype,i,{model:f,initialize:function(){},toJSON:function(n){return this.map(function(t){return t.toJSON(n)})},sync:function(){return t.sync.apply(this,arguments)},add:function(t,i){return this.set(t,n.defaults(i||{},wt))},remove:function(t,i){t=n.isArray(t)?t.slice():[t],i||(i={});for(var f,r,u=0,e=t.length;u<e;u++)(r=this.get(t[u]),r)&&(delete this._byId[r.id],delete this._byId[r.cid],f=this.indexOf(r),this.models.splice(f,1),this.length--,i.silent||(i.index=f,r.trigger("remove",r,this,i)),this._removeReference(r));return this},set:function(t,i){i=n.defaults(i||{},at),i.parse&&(t=this.parse(t,i)),n.isArray(t)||(t=t?[t]:[]);for(var r,y,s,o,h=i.at,l=this.comparator&&h==null&&i.sort!==!1,v=n.isString(this.comparator)?this.comparator:null,f=[],c=[],a={},u=0,e=t.length;u<e;u++)if(r=this._prepareModel(t[u],i))if(s=this.get(r))i.remove&&(a[s.cid]=!0),i.merge&&(s.set(r.attributes,i),l&&!o&&s.hasChanged(v)&&(o=!0));else if(i.add){f.push(r);r.on("all",this._onModelEvent,this);this._byId[r.cid]=r,r.id!=null&&(this._byId[r.id]=r)}if(i.remove){for(u=0,e=this.length;u<e;++u)a[(r=this.models[u]).cid]||c.push(r);c.length&&this.remove(c,i)}if(f.length&&(l&&(o=!0),this.length+=f.length,h!=null?lt.apply(this.models,[h,0].concat(f)):yt.apply(this.models,f)),o&&this.sort({silent:!0}),i.silent)return this;for(u=0,e=f.length;u<e;u++)(r=f[u]).trigger("add",r,this,i);return o&&this.trigger("sort",this,i),this},reset:function(t,i){i||(i={});for(var r=0,u=this.models.length;r<u;r++)this._removeReference(this.models[r]);return i.previousModels=this.models,this._reset(),this.add(t,n.extend({silent:!0},i)),i.silent||this.trigger("reset",this,i),this},push:function(t,i){return t=this._prepareModel(t,i),this.add(t,n.extend({at:this.length},i)),t},pop:function(n){var t=this.at(this.length-1);return this.remove(t,n),t},unshift:function(t,i){return t=this._prepareModel(t,i),this.add(t,n.extend({at:0},i)),t},shift:function(n){var t=this.at(0);return this.remove(t,n),t},slice:function(n,t){return this.models.slice(n,t)},get:function(n){if(n!=null)return this._byId[n.id!=null?n.id:n.cid||n]},at:function(n){return this.models[n]},where:function(t,i){return n.isEmpty(t)?i?void 0:[]:this[i?"find":"filter"](function(n){for(var i in t)if(t[i]!==n.get(i))return!1;return!0})},findWhere:function(n){return this.where(n,!0)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return t||(t={}),n.isString(this.comparator)||this.comparator.length===1?this.models=this.sortBy(this.comparator,this):this.models.sort(n.bind(this.comparator,this)),t.silent||this.trigger("sort",this,t),this},sortedIndex:function(t,i,r){i||(i=this.comparator);var u=n.isFunction(i)?i:function(n){return n.get(i)};return n.sortedIndex(this.models,t,u,r)},pluck:function(t){return n.invoke(this.models,"get",t)},fetch:function(t){t=t?n.clone(t):{},t.parse===void 0&&(t.parse=!0);var r=t.success,i=this;return t.success=function(n){var u=t.reset?"reset":"set";i[u](n,t),r&&r(i,n,t),i.trigger("sync",i,n,t)},e(this,t),this.sync("read",this,t)},create:function(t,i){if(i=i?n.clone(i):{},!(t=this._prepareModel(t,i)))return!1;i.wait||this.add(t,i);var u=this,r=i.success;return i.success=function(n){i.wait&&u.add(t,i),r&&r(t,n,i)},t.save(null,i),t},parse:function(n){return n},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(n,t){if(n instanceof f)return n.collection||(n.collection=this),n;t||(t={}),t.collection=this;var i=new this.model(n,t);return i._validate(n,t)?i:(this.trigger("invalid",this,n,t),!1)},_removeReference:function(n){this===n.collection&&delete n.collection,n.off("all",this._onModelEvent,this)},_onModelEvent:function(n,t,i,r){(n!=="add"&&n!=="remove"||i===this)&&(n==="destroy"&&this.remove(t,r),t&&n==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],t.id!=null&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments))}}),d=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","indexOf","shuffle","lastIndexOf","isEmpty","chain"],n.each(d,function(t){s.prototype[t]=function(){var i=h.call(arguments);return i.unshift(this.models),n[t].apply(n,i)}}),g=["groupBy","countBy","sortBy"],n.each(g,function(t){s.prototype[t]=function(i,r){var u=n.isFunction(i)?i:function(n){return n.get(i)};return n[t](this.models,u,r)}});var nt=t.View=function(t){this.cid=n.uniqueId("view"),this._configure(t||{}),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},ot=/^(\S+)\s*(.*)$/,ct=["model","collection","el","id","attributes","className","tagName","events"];n.extend(nt.prototype,i,{tagName:"div",$:function(n){return this.$el.find(n)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},setElement:function(n,i){return this.$el&&this.undelegateEvents(),this.$el=n instanceof t.$?n:t.$(n),this.el=this.$el[0],i!==!1&&this.delegateEvents(),this},delegateEvents:function(t){var r,i;if(!(t||(t=n.result(this,"events"))))return this;this.undelegateEvents();for(r in t)if(i=t[r],n.isFunction(i)||(i=this[t[r]]),i){var f=r.match(ot),u=f[1],e=f[2];if(i=n.bind(i,this),u+=".delegateEvents"+this.cid,e==="")this.$el.on(u,i);else this.$el.on(u,e,i)}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this.cid),this},_configure:function(t){this.options&&(t=n.extend({},n.result(this,"options"),t)),n.extend(this,n.pick(t,ct)),this.options=t},_ensureElement:function(){var i,r;this.el?this.setElement(n.result(this,"el"),!1):(i=n.extend({},n.result(this,"attributes")),this.id&&(i.id=n.result(this,"id")),this.className&&(i["class"]=n.result(this,"className")),r=t.$("<"+n.result(this,"tagName")+">").attr(i),this.setElement(r,!1))}}),t.sync=function(i,r,u){var e=k[i],f,o,s;return n.defaults(u||(u={}),{emulateHTTP:t.emulateHTTP,emulateJSON:t.emulateJSON}),f={type:e,dataType:"json"},u.url||(f.url=n.result(r,"url")||l()),u.data==null&&r&&(i==="create"||i==="update"||i==="patch")&&(f.contentType="application/json",f.data=JSON.stringify(u.attrs||r.toJSON(u))),u.emulateJSON&&(f.contentType="application/x-www-form-urlencoded",f.data=f.data?{model:f.data}:{}),u.emulateHTTP&&(e==="PUT"||e==="DELETE"||e==="PATCH")&&(f.type="POST",u.emulateJSON&&(f.data._method=e),o=u.beforeSend,u.beforeSend=function(n){return n.setRequestHeader("X-HTTP-Method-Override",e),o?o.apply(this,arguments):void 0}),f.type==="GET"||u.emulateJSON||(f.processData=!1),f.type!=="PATCH"||!window.ActiveXObject||window.external&&window.external.msActiveXFilteringEnabled||(f.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}),s=u.xhr=t.ajax(n.extend(f,u)),r.trigger("request",r,s,u),s},k={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"},t.ajax=function(){return t.$.ajax.apply(t.$,arguments)};var p=t.Router=function(n){n||(n={}),n.routes&&(this.routes=n.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},ht=/\((.*?)\)/g,st=/(\(\?)?:\w+/g,pt=/\*\w+/g,et=/[\-{}\[\]+?.,\\\^$|#\s]/g;n.extend(p.prototype,i,{initialize:function(){},route:function(i,r,u){n.isRegExp(i)||(i=this._routeToRegExp(i)),n.isFunction(r)&&(u=r,r=""),u||(u=this[r]);var f=this;return t.history.route(i,function(n){var e=f._extractParameters(i,n);u&&u.apply(f,e),f.trigger.apply(f,["route:"+r].concat(e)),f.trigger("route",r,e),t.history.trigger("route",f,r,e)}),this},navigate:function(n,i){return t.history.navigate(n,i),this},_bindRoutes:function(){if(this.routes){this.routes=n.result(this,"routes");for(var t,i=n.keys(this.routes);(t=i.pop())!=null;)this.route(t,this.routes[t])}},_routeToRegExp:function(n){return n=n.replace(et,"\\$&").replace(ht,"(?:$1)?").replace(st,function(n,t){return t?n:"([^/]+)"}).replace(pt,"(.*?)"),new RegExp("^"+n+"$")},_extractParameters:function(t,i){var r=t.exec(i).slice(1);return n.map(r,function(n){return n?decodeURIComponent(n):null})}});var u=t.History=function(){this.handlers=[],n.bindAll(this,"checkUrl"),typeof window!="undefined"&&(this.location=window.location,this.history=window.history)},tt=/^[#\/]|\s+$/g,ft=/^\/+|\/+$/g,it=/msie [\w.]+/,ut=/\/$/;u.started=!1,n.extend(u.prototype,i,{interval:50,getHash:function(n){var t=(n||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(n,t){if(n==null)if(this._hasPushState||!this._wantsHashChange||t){n=this.location.pathname;var i=this.root.replace(ut,"");n.indexOf(i)||(n=n.substr(i.length))}else n=this.getHash();return n.replace(tt,"")},start:function(i){var r,f;if(u.started)throw new Error("Backbone.history has already been started");u.started=!0,this.options=n.extend({},{root:"/"},this.options,i),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var e=this.getFragment(),o=document.documentMode,s=it.exec(navigator.userAgent.toLowerCase())&&(!o||o<=7);if(this.root=("/"+this.root+"/").replace(ft,"/"),s&&this._wantsHashChange&&(this.iframe=t.$('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(e)),this._hasPushState)t.$(window).on("popstate",this.checkUrl);else if(this._wantsHashChange&&"onhashchange"in window&&!s)t.$(window).on("hashchange",this.checkUrl);else this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval));return(this.fragment=e,r=this.location,f=r.pathname.replace(/[^\/]$/,"$&/")===this.root,this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!f)?(this.fragment=this.getFragment(null,!0),this.location.replace(this.root+this.location.search+"#"+this.fragment),!0):(this._wantsPushState&&this._hasPushState&&f&&r.hash&&(this.fragment=this.getHash().replace(tt,""),this.history.replaceState({},document.title,this.root+this.fragment+r.search)),this.options.silent?void 0:this.loadUrl())},stop:function(){t.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),clearInterval(this._checkUrlInterval),u.started=!1},route:function(n,t){this.handlers.unshift({route:n,callback:t})},checkUrl:function(){var t=this.getFragment();if(t===this.fragment&&this.iframe&&(t=this.getFragment(this.getHash(this.iframe))),t===this.fragment)return!1;this.iframe&&this.navigate(t),this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(t){var i=this.fragment=this.getFragment(t);return n.any(this.handlers,function(n){if(n.route.test(i))return n.callback(i),!0})},navigate:function(n,t){if(!u.started)return!1;if(t&&t!==!0||(t={trigger:t}),n=this.getFragment(n||""),this.fragment!==n){this.fragment=n;var i=this.root+n;if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,i);else if(this._wantsHashChange)this._updateHash(this.location,n,t.replace),this.iframe&&n!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,n,t.replace));else return this.location.assign(i);t.trigger&&this.loadUrl(n)}},_updateHash:function(n,t,i){if(i){var r=n.href.replace(/(javascript:|#).*$/,"");n.replace(r+"#"+t)}else n.hash="#"+t}}),t.history=new u,a=function(t,i){var u=this,r,f;return r=t&&n.has(t,"constructor")?t.constructor:function(){return u.apply(this,arguments)},n.extend(r,u,i),f=function(){this.constructor=r},f.prototype=u.prototype,r.prototype=new f,t&&n.extend(r.prototype,t),r.__super__=u.prototype,r},f.extend=s.extend=p.extend=nt.extend=u.extend=a,l=function(){throw new Error('A "url" property or function must be specified');},e=function(n,t){var i=t.error;t.error=function(r){i&&i(n,r,t),n.trigger("error",n,r,t)}}}.call(this)