-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathember-data.min.js
4 lines (4 loc) · 96.3 KB
/
ember-data.min.js
1
2
3
4
(function(){"use strict";var e=Ember.create;var r=Ember.Error;function t(e){r.call(this,"The backend rejected the commit because it was invalid: "+Ember.inspect(e));this.errors=e}t.prototype=e(r.prototype);var i=t;var n=Ember.get;var a=Ember.Object.extend({defaultSerializer:"-default",find:null,findAll:null,findQuery:null,generateIdForRecord:null,serialize:function(e,r){return n(e.record,"store").serializerFor(e.modelName).serialize(e,r)},createRecord:null,updateRecord:null,deleteRecord:null,coalesceFindRequests:true,groupRecordsForFindMany:function(e,r){return[r]}});var o=a;var s=Ember.get;var l=Ember.String.fmt;var u=Ember.EnumerableUtils.indexOf;var c=0;var d=o.extend({serializer:null,coalesceFindRequests:false,simulateRemoteResponse:true,latency:50,fixturesForType:function(e){if(e.FIXTURES){var r=Ember.A(e.FIXTURES);return r.map(function(e){var r=typeof e.id;if(r!=="number"&&r!=="string"){throw new Error(l("the id property must be defined as a number or string for fixture %@",[e]))}e.id=e.id+"";return e})}return null},queryFixtures:function(e,r,t){},updateFixtures:function(e,r){if(!e.FIXTURES){e.FIXTURES=[]}var t=e.FIXTURES;this.deleteLoadedFixture(e,r);t.push(r)},mockJSON:function(e,r,t){return e.serializerFor(t.modelName).serialize(t,{includeId:true})},generateIdForRecord:function(e){return"fixture-"+c++},find:function(e,r,t,i){var n=this.fixturesForType(r);var a;if(n){a=Ember.A(n).findBy("id",t)}if(a){return this.simulateRemoteCall(function(){return a},this)}},findMany:function(e,r,t,i){var n=this.fixturesForType(r);if(n){n=n.filter(function(e){return u(t,e.id)!==-1})}if(n){return this.simulateRemoteCall(function(){return n},this)}},findAll:function(e,r){var t=this.fixturesForType(r);return this.simulateRemoteCall(function(){return t},this)},findQuery:function(e,r,t,i){var n=this.fixturesForType(r);n=this.queryFixtures(n,t,r);if(n){return this.simulateRemoteCall(function(){return n},this)}},createRecord:function(e,r,t){var i=this.mockJSON(e,r,t);this.updateFixtures(r,i);return this.simulateRemoteCall(function(){return i},this)},updateRecord:function(e,r,t){var i=this.mockJSON(e,r,t);this.updateFixtures(r,i);return this.simulateRemoteCall(function(){return i},this)},deleteRecord:function(e,r,t){this.deleteLoadedFixture(r,t);return this.simulateRemoteCall(function(){return null})},deleteLoadedFixture:function(e,r){var t=this.findExistingFixture(e,r);if(t){var i=u(e.FIXTURES,t);e.FIXTURES.splice(i,1);return true}},findExistingFixture:function(e,r){var t=this.fixturesForType(e);var i=r.id;return this.findFixtureById(t,i)},findFixtureById:function(e,r){return Ember.A(e).find(function(e){if(""+s(e,"id")===""+r){return true}else{return false}})},simulateRemoteCall:function(e,r){var t=this;return new Ember.RSVP.Promise(function(i){var n=Ember.copy(e.call(r),true);if(s(t,"simulateRemoteResponse")){Ember.run.later(function(){i(n)},s(t,"latency"))}else{Ember.run.schedule("actions",null,function(){i(n)})}},"DS: FixtureAdapter#simulateRemoteCall")}});var h=Ember.Map;var f=Ember.MapWithDefault;var p=h;var m=Ember.get;var v=Ember.Mixin.create({buildURL:function(e,r,t,i,n){switch(i){case"find":return this.urlForFind(r,e,t);case"findAll":return this.urlForFindAll(e);case"findQuery":return this.urlForFindQuery(n,e);case"findMany":return this.urlForFindMany(r,e,t);case"findHasMany":return this.urlForFindHasMany(r,e);case"findBelongsTo":return this.urlForFindBelongsTo(r,e);case"createRecord":return this.urlForCreateRecord(e,t);case"updateRecord":return this.urlForUpdateRecord(r,e,t);case"deleteRecord":return this.urlForDeleteRecord(r,e,t);default:return this._buildURL(e,r)}},_buildURL:function(e,r){var t=[];var i=m(this,"host");var n=this.urlPrefix();var a;if(e){a=this.pathForType(e);if(a){t.push(a)}}if(r){t.push(encodeURIComponent(r))}if(n){t.unshift(n)}t=t.join("/");if(!i&&t&&t.charAt(0)!=="/"){t="/"+t}return t},urlForFind:function(e,r,t){return this._buildURL(r,e)},urlForFindAll:function(e){return this._buildURL(e)},urlForFindQuery:function(e,r){return this._buildURL(r)},urlForFindMany:function(e,r,t){return this._buildURL(r)},urlForFindHasMany:function(e,r){return this._buildURL(r,e)},urlForFindBelongsTo:function(e,r){return this._buildURL(r,e)},urlForCreateRecord:function(e,r){return this._buildURL(e)},urlForUpdateRecord:function(e,r,t){return this._buildURL(r,e)},urlForDeleteRecord:function(e,r,t){return this._buildURL(r,e)},urlPrefix:function(e,r){var t=m(this,"host");var i=m(this,"namespace");var n=[];if(e){if(/^\/\//.test(e)){}else if(e.charAt(0)==="/"){if(t){e=e.slice(1);n.push(t)}}else if(!/^http(s)?:\/\//.test(e)){n.push(r)}}else{if(t){n.push(t)}if(i){n.push(i)}}if(e){n.push(e)}return n.join("/")},pathForType:function(e){var r=Ember.String.camelize(e);return Ember.String.pluralize(r)}});var y=Ember.get;var b=Ember.set;var g=Ember.ArrayPolyfills.forEach;var R=a.extend(v,{defaultSerializer:"-rest",sortQueryParams:function(e){var r=Ember.keys(e);var t=r.length;if(t<2){return e}var i={};var n=r.sort();for(var a=0;a<t;a++){i[n[a]]=e[n[a]]}return i},coalesceFindRequests:false,find:function(e,r,t,i){return this.ajax(this.buildURL(r.modelName,t,i,"find"),"GET")},findAll:function(e,r,t){var i,n;if(t){i={since:t}}n=this.buildURL(r.modelName,null,null,"findAll");return this.ajax(n,"GET",{data:i})},findQuery:function(e,r,t){var i=this.buildURL(r.modelName,null,null,"findQuery",t);if(this.sortQueryParams){t=this.sortQueryParams(t)}return this.ajax(i,"GET",{data:t})},findMany:function(e,r,t,i){var n=this.buildURL(r.modelName,t,i,"findMany");return this.ajax(n,"GET",{data:{ids:t}})},findHasMany:function(e,r,t,i){var n=r.id;var a=r.modelName;t=this.urlPrefix(t,this.buildURL(a,n,null,"findHasMany"));return this.ajax(t,"GET")},findBelongsTo:function(e,r,t,i){var n=r.id;var a=r.modelName;t=this.urlPrefix(t,this.buildURL(a,n,null,"findBelongsTo"));return this.ajax(t,"GET")},createRecord:function(e,r,t){var i={};var n=e.serializerFor(r.modelName);var a=this.buildURL(r.modelName,null,t,"createRecord");n.serializeIntoHash(i,r,t,{includeId:true});return this.ajax(a,"POST",{data:i})},updateRecord:function(e,r,t){var i={};var n=e.serializerFor(r.modelName);n.serializeIntoHash(i,r,t);var a=t.id;var o=this.buildURL(r.modelName,a,t,"updateRecord");return this.ajax(o,"PUT",{data:i})},deleteRecord:function(e,r,t){var i=t.id;return this.ajax(this.buildURL(r.modelName,i,t,"deleteRecord"),"DELETE")},_stripIDFromURL:function(e,r){var t=this.buildURL(r.modelName,r.id,r);var i=t.split("/");var n=i[i.length-1];var a=r.id;if(n===a){i[i.length-1]=""}else if(E(n,"?id="+a)){i[i.length-1]=n.substring(0,n.length-a.length-1)}return i.join("/")},maxURLLength:2048,groupRecordsForFindMany:function(e,r){var t=f.create({defaultValue:function(){return[]}});var i=this;var n=this.maxURLLength;g.call(r,function(r){var n=i._stripIDFromURL(e,r);t.get(n).push(r)});function a(r,t,n){var a=i._stripIDFromURL(e,r[0]);var o=0;var s=[[]];g.call(r,function(e){var r=encodeURIComponent(e.id).length+n;if(a.length+o+r>=t){o=0;s.push([])}o+=r;var i=s.length-1;s[i].push(e)});return s}var o=[];t.forEach(function(e,r){var t="&ids%5B%5D=".length;var i=a(e,n,t);g.call(i,function(e){o.push(e)})});return o},ajaxError:function(e,r,t){var i=e!==null&&typeof e==="object";if(i){e.then=null;if(!e.errorThrown){if(typeof t==="string"){e.errorThrown=new Error(t)}else{e.errorThrown=t}}}return e},ajaxSuccess:function(e,r){return r},ajax:function(e,r,t){var n=this;return new Ember.RSVP.Promise(function(a,o){var s=n.ajaxOptions(e,r,t);s.success=function(e,r,t){e=n.ajaxSuccess(t,e);if(e instanceof i){Ember.run(null,o,e)}else{Ember.run(null,a,e)}};s.error=function(e,r,t){Ember.run(null,o,n.ajaxError(e,e.responseText,t))};Ember.$.ajax(s)},"DS: RESTAdapter#ajax "+r+" to "+e)},ajaxOptions:function(e,r,t){var i=t||{};i.url=e;i.type=r;i.dataType="json";i.context=this;if(i.data&&r!=="GET"){i.contentType="application/json; charset=utf-8";i.data=JSON.stringify(i.data)}var n=y(this,"headers");if(n!==undefined){i.beforeSend=function(e){g.call(Ember.keys(n),function(r){e.setRequestHeader(r,n[r])})}}return i}});function E(e,r){if(typeof String.prototype.endsWith!=="function"){return e.indexOf(r,e.length-r.length)!==-1}else{return e.endsWith(r)}}if(Ember.platform.hasPropertyAccessors){Ember.defineProperty(R.prototype,"maxUrlLength",{enumerable:false,get:function(){return this.maxURLLength},set:function(e){b(this,"maxURLLength",e)}})}var _=R;var F=Ember;var A=F.String.capitalize;var M=/^\s*$/;var z=/([\w/-]+[_/-\s])([a-z\d]+$)/;var S=/([\w/-\s]+)([A-Z][a-z\d]*$)/;var T=/[A-Z][a-z\d]*$/;function C(e,r){for(var t=0,i=r.length;t<i;t++){e.uncountable[r[t].toLowerCase()]=true}}function k(e,r){var t;for(var i=0,n=r.length;i<n;i++){t=r[i];e.irregular[t[0].toLowerCase()]=t[1];e.irregular[t[1].toLowerCase()]=t[1];e.irregularInverse[t[1].toLowerCase()]=t[0];e.irregularInverse[t[0].toLowerCase()]=t[0]}}function D(e){e=e||{};e.uncountable=e.uncountable||x();e.irregularPairs=e.irregularPairs||x();var r=this.rules={plurals:e.plurals||[],singular:e.singular||[],irregular:x(),irregularInverse:x(),uncountable:x()};C(r,e.uncountable);k(r,e.irregularPairs);this.enableCache()}if(!Object.create&&!Object.create(null).hasOwnProperty){throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg")}function x(){var e=Object.create(null);e["_dict"]=null;delete e["_dict"];return e}D.prototype={enableCache:function(){this.purgeCache();this.singularize=function(e){this._cacheUsed=true;return this._sCache[e]||(this._sCache[e]=this._singularize(e))};this.pluralize=function(e){this._cacheUsed=true;return this._pCache[e]||(this._pCache[e]=this._pluralize(e))}},purgeCache:function(){this._cacheUsed=false;this._sCache=x();this._pCache=x()},disableCache:function(){this._sCache=null;this._pCache=null;this.singularize=function(e){return this._singularize(e)};this.pluralize=function(e){return this._pluralize(e)}},plural:function(e,r){if(this._cacheUsed){this.purgeCache()}this.rules.plurals.push([e,r.toLowerCase()])},singular:function(e,r){if(this._cacheUsed){this.purgeCache()}this.rules.singular.push([e,r.toLowerCase()])},uncountable:function(e){if(this._cacheUsed){this.purgeCache()}C(this.rules,[e.toLowerCase()])},irregular:function(e,r){if(this._cacheUsed){this.purgeCache()}k(this.rules,[[e,r]])},pluralize:function(e){return this._pluralize(e)},_pluralize:function(e){return this.inflect(e,this.rules.plurals,this.rules.irregular)},singularize:function(e){return this._singularize(e)},_singularize:function(e){return this.inflect(e,this.rules.singular,this.rules.irregularInverse)},inflect:function(e,r,t){var i,n,a,o,s,l,u,c,d,h,f;c=!e||M.test(e);d=T.test(e);l="";if(c){return e}o=e.toLowerCase();s=z.exec(e)||S.exec(e);if(s){l=s[1];u=s[2].toLowerCase()}f=this.rules.uncountable[o]||this.rules.uncountable[u];if(f){return e}for(h in this.rules.irregular){if(o.match(h+"$")){n=t[h];if(d&&t[u]){n=A(n);h=A(h)}return e.replace(h,n)}}for(var p=r.length,m=0;p>m;p--){i=r[p-1];h=i[0];if(h.test(e)){break}}i=i||[];h=i[0];n=i[1];a=e.replace(h,n);return a}};var P=D;function I(e){return P.inflector.pluralize(e)}function w(e){return P.inflector.singularize(e)}var L={plurals:[[/$/,"s"],[/s$/i,"s"],[/^(ax|test)is$/i,"$1es"],[/(octop|vir)us$/i,"$1i"],[/(octop|vir)i$/i,"$1i"],[/(alias|status)$/i,"$1es"],[/(bu)s$/i,"$1ses"],[/(buffal|tomat)o$/i,"$1oes"],[/([ti])um$/i,"$1a"],[/([ti])a$/i,"$1a"],[/sis$/i,"ses"],[/(?:([^f])fe|([lr])f)$/i,"$1$2ves"],[/(hive)$/i,"$1s"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/(x|ch|ss|sh)$/i,"$1es"],[/(matr|vert|ind)(?:ix|ex)$/i,"$1ices"],[/^(m|l)ouse$/i,"$1ice"],[/^(m|l)ice$/i,"$1ice"],[/^(ox)$/i,"$1en"],[/^(oxen)$/i,"$1"],[/(quiz)$/i,"$1zes"]],singular:[[/s$/i,""],[/(ss)$/i,"$1"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"$1sis"],[/(^analy)(sis|ses)$/i,"$1sis"],[/([^f])ves$/i,"$1fe"],[/(hive)s$/i,"$1"],[/(tive)s$/i,"$1"],[/([lr])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(x|ch|ss|sh)es$/i,"$1"],[/^(m|l)ice$/i,"$1ouse"],[/(bus)(es)?$/i,"$1"],[/(o)es$/i,"$1"],[/(shoe)s$/i,"$1"],[/(cris|test)(is|es)$/i,"$1is"],[/^(a)x[ie]s$/i,"$1xis"],[/(octop|vir)(us|i)$/i,"$1us"],[/(alias|status)(es)?$/i,"$1"],[/^(ox)en/i,"$1"],[/(vert|ind)ices$/i,"$1ex"],[/(matr)ices$/i,"$1ix"],[/(quiz)zes$/i,"$1"],[/(database)s$/i,"$1"]],irregularPairs:[["person","people"],["man","men"],["child","children"],["sex","sexes"],["move","moves"],["cow","kine"],["zombie","zombies"]],uncountable:["equipment","information","rice","money","species","series","fish","sheep","jeans","police"]};P.inflector=new P(L);if(F.EXTEND_PROTOTYPES===true||F.EXTEND_PROTOTYPES.String){String.prototype.pluralize=function(){return I(this)};String.prototype.singularize=function(){return w(this)}}P.defaultRules=L;F.Inflector=P;F.String.pluralize=I;F.String.singularize=w;var N=P;if(typeof define!=="undefined"&&define.amd){define("ember-inflector",["exports"],function(e){e["default"]=P;return P})}else if(typeof module!=="undefined"&&module["exports"]){module["exports"]=P}var O=Ember.String.decamelize;var $=Ember.String.underscore;var U=_.extend({defaultSerializer:"-active-model",pathForType:function(e){var r=O(e);var t=$(r);return I(t)},ajaxError:function(e){var r=this._super.apply(this,arguments);if(e&&e.status===422){var t=Ember.$.parseJSON(e.responseText);return new i(t)}else{return r}}});var K=U;var j=Ember.Object.extend({extract:null,serialize:null,normalize:function(e,r){return r}});var B=j;var H=Ember.get;var V=Ember.isNone;var W=Ember.ArrayPolyfills.map;var q=Ember.merge;var Q=B.extend({primaryKey:"id",mergedProperties:["attrs"],applyTransforms:function(e,r){e.eachTransformedAttribute(function t(e,i){if(!r.hasOwnProperty(e)){return}var n=this.transformFor(i);r[e]=n.deserialize(r[e])},this);return r},normalize:function(e,r){if(!r){return r}this.normalizeId(r);this.normalizeAttributes(e,r);this.normalizeRelationships(e,r);this.normalizeUsingDeclaredMapping(e,r);this.applyTransforms(e,r);return r},normalizePayload:function(e){return e},normalizeAttributes:function(e,r){var t;if(this.keyForAttribute){e.eachAttribute(function(e){t=this.keyForAttribute(e,"deserialize");if(e===t){return}if(!r.hasOwnProperty(t)){return}r[e]=r[t];delete r[t]},this)}},normalizeRelationships:function(e,r){var t;if(this.keyForRelationship){e.eachRelationship(function(e,i){t=this.keyForRelationship(e,i.kind,"deserialize");if(e===t){return}if(!r.hasOwnProperty(t)){return}r[e]=r[t];delete r[t]},this)}},normalizeUsingDeclaredMapping:function(e,r){var t=H(this,"attrs");var i,n;if(t){for(n in t){i=this._getMappedKey(n);if(!r.hasOwnProperty(i)){continue}if(i!==n){r[n]=r[i];delete r[i]}}}},normalizeId:function(e){var r=H(this,"primaryKey");if(r==="id"){return}e.id=e[r];delete e[r]},normalizeErrors:function(e,r){this.normalizeId(r);this.normalizeAttributes(e,r);this.normalizeRelationships(e,r);this.normalizeUsingDeclaredMapping(e,r)},_getMappedKey:function(e){var r=H(this,"attrs");var t;if(r&&r[e]){t=r[e];if(t.key){t=t.key}if(typeof t==="string"){e=t}}return e},_canSerialize:function(e){var r=H(this,"attrs");return!r||!r[e]||r[e].serialize!==false},serialize:function(e,r){var t={};if(r&&r.includeId){var i=e.id;if(i){t[H(this,"primaryKey")]=i}}e.eachAttribute(function(r,i){this.serializeAttribute(e,t,r,i)},this);e.eachRelationship(function(r,i){if(i.kind==="belongsTo"){this.serializeBelongsTo(e,t,i)}else if(i.kind==="hasMany"){this.serializeHasMany(e,t,i)}},this);return t},serializeIntoHash:function(e,r,t,i){q(e,this.serialize(t,i))},serializeAttribute:function(e,r,t,i){var n=i.type;if(this._canSerialize(t)){var a=e.attr(t);if(n){var o=this.transformFor(n);a=o.serialize(a)}var s=this._getMappedKey(t);if(s===t&&this.keyForAttribute){s=this.keyForAttribute(t,"serialize")}r[s]=a}},serializeBelongsTo:function(e,r,t){var i=t.key;if(this._canSerialize(i)){var n=e.belongsTo(i,{id:true});var a=this._getMappedKey(i);if(a===i&&this.keyForRelationship){a=this.keyForRelationship(i,"belongsTo","serialize")}if(V(n)){r[a]=null}else{r[a]=n}if(t.options.polymorphic){this.serializePolymorphicType(e,r,t)}}},serializeHasMany:function(e,r,t){var i=t.key;if(this._canSerialize(i)){var n;n=this._getMappedKey(i);if(n===i&&this.keyForRelationship){n=this.keyForRelationship(i,"hasMany","serialize")}var a=e.type.determineRelationshipType(t,this.store);if(a==="manyToNone"||a==="manyToMany"){r[n]=e.hasMany(i,{ids:true})}}},serializePolymorphicType:Ember.K,extract:function(e,r,t,i,n){this.extractMeta(e,r.modelName,t);var a="extract"+n.charAt(0).toUpperCase()+n.substr(1);return this[a](e,r,t,i,n)},extractFindAll:function(e,r,t,i,n){return this.extractArray(e,r,t,i,n)},extractFindQuery:function(e,r,t,i,n){return this.extractArray(e,r,t,i,n)},extractFindMany:function(e,r,t,i,n){return this.extractArray(e,r,t,i,n)},extractFindHasMany:function(e,r,t,i,n){return this.extractArray(e,r,t,i,n)},extractCreateRecord:function(e,r,t,i,n){return this.extractSave(e,r,t,i,n)},extractUpdateRecord:function(e,r,t,i,n){return this.extractSave(e,r,t,i,n)},extractDeleteRecord:function(e,r,t,i,n){return this.extractSave(e,r,t,i,n)},extractFind:function(e,r,t,i,n){return this.extractSingle(e,r,t,i,n)},extractFindBelongsTo:function(e,r,t,i,n){return this.extractSingle(e,r,t,i,n)},extractSave:function(e,r,t,i,n){return this.extractSingle(e,r,t,i,n)},extractSingle:function(e,r,t,i,n){var a=this.normalizePayload(t);return this.normalize(r,a)},extractArray:function(e,r,t,i,n){var a=this.normalizePayload(t);var o=this;return W.call(a,function(e){return o.normalize(r,e)})},extractMeta:function(e,r,t){if(t&&t.meta){e.setMetadataFor(r,t.meta);delete t.meta}},extractErrors:function(e,r,t,i){if(t&&typeof t==="object"&&t.errors){t=t.errors;this.normalizeErrors(r,t)}return t},keyForAttribute:function(e,r){return e},keyForRelationship:function(e,r,t){return e},transformFor:function(e,r){var t=this.container.lookup("transform:"+e);return t}});var X=G;function G(e){return Ember.String.dasherize(e)}var J=Y;function Y(e){return e==null?null:e+""}var Z=Ember.ArrayPolyfills.forEach;var ee=Ember.ArrayPolyfills.map;var re=Ember.String.camelize;var te=Q.extend({normalize:function(e,r,t){this.normalizeId(r);this.normalizeAttributes(e,r);this.normalizeRelationships(e,r);this.normalizeUsingDeclaredMapping(e,r);if(this.normalizeHash&&this.normalizeHash[t]){this.normalizeHash[t](r)}this.applyTransforms(e,r);return r},extractSingle:function(e,r,t,i){var n=this.normalizePayload(t);var a;for(var o in n){var s=this.modelNameFromPayloadKey(o);if(!e.modelFactoryFor(s)){continue}var l=this.isPrimaryType(e,s,r);var u=n[o];if(u===null){continue}if(l&&Ember.typeOf(u)!=="array"){a=this.normalize(r,u,o);continue}var c=this.normalizeArray(e,s,u,o);Z.call(c,function(r){var t=l&&!i&&!a;var n=l&&J(r.id)===i;if(t||n){a=r}else{e.push(s,r)}},this)}return a},extractArray:function(e,r,t){var i=this.normalizePayload(t);var n;for(var a in i){var o=a;var s=false;if(a.charAt(0)==="_"){s=true;o=a.substr(1)}var l=this.modelNameFromPayloadKey(o);if(!e.modelFactoryFor(l)){continue}var u=this.normalizeArray(e,l,i[a],a);var c=!s&&this.isPrimaryType(e,l,r);if(c){n=u}else{e.pushMany(l,u)}}return n},normalizeArray:function(e,r,t,i){var n=e.modelFor(r);var a=e.serializerFor(r);return ee.call(t,function(e){return a.normalize(n,e,i)},this)},isPrimaryType:function(e,r,t){var i=e.modelFor(r);return i.modelName===t.modelName},pushPayload:function(e,r){var t=this.normalizePayload(r);for(var i in t){var n=this.modelNameFromPayloadKey(i);if(!e.modelFactoryFor(n)){continue}var a=e.modelFor(n);var o=e.serializerFor(n);var s=ee.call(Ember.makeArray(t[i]),function(e){return o.normalize(a,e,i)},this);e.pushMany(n,s)}},modelNameFromPayloadKey:function(e){return w(X(e))},serialize:function(e,r){return this._super.apply(this,arguments)},serializeIntoHash:function(e,r,t,i){var n=this.payloadKeyFromModelName(r.modelName);e[n]=this.serialize(t,i)},payloadKeyFromModelName:function(e){return re(e)},typeForRoot:function(e){return this.modelNameFromPayloadKey(e)},serializePolymorphicType:function(e,r,t){var i=t.key;var n=e.belongsTo(i);i=this.keyForAttribute?this.keyForAttribute(i,"serialize"):i;if(Ember.isNone(n)){r[i+"Type"]=null}else{r[i+"Type"]=Ember.String.camelize(n.modelName)}}});var ie=te;var ne=Ember.EnumerableUtils.forEach;var ae=Ember.String.camelize;var oe=Ember.String.classify;var se=Ember.String.decamelize;var le=Ember.String.underscore;var ue=ie.extend({keyForAttribute:function(e){return se(e)},keyForRelationship:function(e,r){var t=se(e);if(r==="belongsTo"){return t+"_id"}else if(r==="hasMany"){return w(t)+"_ids"}else{return t}},serializeHasMany:Ember.K,payloadKeyFromModelName:function(e){return le(se(e))},serializePolymorphicType:function(e,r,t){var i=t.key;var n=e.belongsTo(i);var a=le(i+"_type");if(Ember.isNone(n)){r[a]=null}else{r[a]=oe(n.modelName).replace(/(\/)([a-z])/g,function(e,r,t){return e.toUpperCase()}).replace("/","::")}},normalize:function(e,r,t){this.normalizeLinks(r);return this._super(e,r,t)},normalizeLinks:function(e){if(e.links){var r=e.links;for(var t in r){var i=ae(t);if(i!==t){r[i]=r[t];delete r[t]}}}},normalizeRelationships:function(e,r){if(this.keyForRelationship){e.eachRelationship(function(e,t){var i,n;if(t.options.polymorphic){i=this.keyForAttribute(e,"deserialize");n=r[i];if(n&&n.type){n.type=this.modelNameFromPayloadKey(n.type)}else if(n&&t.kind==="hasMany"){var a=this;ne(n,function(e){e.type=a.modelNameFromPayloadKey(e.type)})}}else{i=this.keyForRelationship(e,t.kind,"deserialize");if(!r.hasOwnProperty(i)){return}n=r[i]}r[e]=n;if(e!==i){delete r[i]}},this)}},modelNameFromPayloadKey:function(e){var r=ae(w(e)).replace(/(^|\:)([A-Z])/g,function(e,r,t){return e.toLowerCase()}).replace("::","/");return X(r)}});var ce=ue;function de(e){this.container=e}de.prototype.aliasedFactory=function(e,r){var t=this;return{create:function(){if(r){r()}return t.container.lookup(e)}}};de.prototype.registerAlias=function(e,r,t){var i=this.aliasedFactory(r,t);return this.container.register(e,i)};de.prototype.registerDeprecation=function(e,r){var t=function(){};return this.registerAlias(e,r,t)};de.prototype.registerDeprecations=function(e){var r,t,i,n;for(r=e.length;r>0;r--){t=e[r-1];i=t["deprecated"];n=t["valid"];this.registerDeprecation(i,n)}};var he=de;var fe=pe;function pe(e,r){var t=new he(e);t.registerDeprecations([{deprecated:"serializer:_ams",valid:"serializer:-active-model"},{deprecated:"adapter:_ams",valid:"adapter:-active-model"}]);e.register("serializer:-active-model",ce);e.register("adapter:-active-model",K)}var me=Ember.Namespace.create({VERSION:"1.0.0-beta.19.1"});if(Ember.libraries){Ember.libraries.registerCoreLibrary("Ember Data",me.VERSION)}var ve={};Ember.merge(Ember.FEATURES,ve);var ye=me;var be=Ember.RSVP.Promise;var ge=Ember.get;var Re=Ember.ArrayProxy.extend(Ember.PromiseProxyMixin);var Ee=Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);var _e=function(e,r){return Ee.create({promise:be.resolve(e,r)})};var Fe=function(e,r){return Re.create({promise:be.resolve(e,r)})};function Ae(e){return function(){var r=ge(this,"content");return r[e].apply(r,arguments)}}var Me=Re.extend({reload:function(){return Me.create({promise:ge(this,"content").reload()})},createRecord:Ae("createRecord"),on:Ae("on"),one:Ae("one"),trigger:Ae("trigger"),off:Ae("off"),has:Ae("has")});var ze=function(e,r){return Me.create({promise:be.resolve(e,r)})};var Se=Ember.get;function Te(e){var r=Array.prototype.slice.call(arguments,1);return function(){return e.apply(undefined,r)}}function Ce(e,r){var t=e["finally"](function(){if(!r()){t._subscribers.length=0}});return t}function ke(e){return!(Se(e,"isDestroyed")||Se(e,"isDestroying"))}function De(e,r,t){var i=r.serializer;if(i===undefined){i=e.serializerFor(t)}if(i===null||i===undefined){i={extract:function(e,r,t){return t}}}return i}var xe=Ember.RSVP.Promise;var Pe=Ember.EnumerableUtils.map;function Ie(e,r,t,i,n){var a=n.createSnapshot();var o=e.find(r,t,i,a);var s=De(r,e,n.type.modelName);var l="DS: Handle Adapter#find of "+t+" with id: "+i;o=xe.cast(o,l);o=Ce(o,Te(ke,r));return o.then(function(e){return r._adapterRun(function(){var n=s.extract(r,t,e,i,"find");var a=r.push(t.modelName,n);return a._internalModel})},function(e){n.notFound();if(n.isEmpty()){n.unloadRecord()}throw e},"DS: Extract payload of '"+t+"'")}function we(e,r,t,i,n){var a=Ember.A(n).invoke("createSnapshot");var o=e.findMany(r,t,i,a);var s=De(r,e,t.modelName);var l="DS: Handle Adapter#findMany of "+t;if(o===undefined){throw new Error("adapter.findMany returned undefined, this was very likely a mistake")}o=xe.cast(o,l);o=Ce(o,Te(ke,r));return o.then(function(e){return r._adapterRun(function(){var i=s.extract(r,t,e,null,"findMany");var n=r.pushMany(t.modelName,i);return Pe(n,function(e){return e._internalModel})})},null,"DS: Extract payload of "+t)}function Le(e,r,t,i,n){var a=t.createSnapshot();var o=r.modelFor(n.type);var s=e.findHasMany(r,a,i,n);var l=De(r,e,n.type);var u="DS: Handle Adapter#findHasMany of "+t+" : "+n.type;s=xe.cast(s,u);s=Ce(s,Te(ke,r));s=Ce(s,Te(ke,t));return s.then(function(e){return r._adapterRun(function(){var t=l.extract(r,o,e,null,"findHasMany");var i=r.pushMany(n.type,t);return Pe(i,function(e){return e._internalModel})})},null,"DS: Extract payload of "+t+" : hasMany "+n.type)}function Ne(e,r,t,i,n){var a=t.createSnapshot();var o=r.modelFor(n.type);var s=e.findBelongsTo(r,a,i,n);var l=De(r,e,n.type);var u="DS: Handle Adapter#findBelongsTo of "+t+" : "+n.type;s=xe.cast(s,u);s=Ce(s,Te(ke,r));s=Ce(s,Te(ke,t));return s.then(function(e){return r._adapterRun(function(){var t=l.extract(r,o,e,null,"findBelongsTo");if(!t){return null}var i=r.push(n.type,t);return i._internalModel})},null,"DS: Extract payload of "+t+" : "+n.type)}function Oe(e,r,t,i){var n=e.findAll(r,t,i);var a=t.modelName;var o=De(r,e,a);var s="DS: Handle Adapter#findAll of "+t;n=xe.cast(n,s);n=Ce(n,Te(ke,r));return n.then(function(e){r._adapterRun(function(){var i=o.extract(r,t,e,null,"findAll");r.pushMany(a,i)});r.didUpdateAll(t);return r.all(a)},null,"DS: Extract payload of findAll "+t)}function $e(e,r,t,i,n){var a=t.modelName;var o=e.findQuery(r,t,i,n);var s=De(r,e,a);var l="DS: Handle Adapter#findQuery of "+t;o=xe.cast(o,l);o=Ce(o,Te(ke,r));return o.then(function(e){var i;r._adapterRun(function(){i=s.extract(r,t,e,null,"findQuery")});n.load(i);return n},null,"DS: Extract payload of findQuery "+t)}var Ue=Ember.get;var Ke=Ember.set;var je=Ember.ArrayProxy.extend(Ember.Evented,{type:null,content:null,isLoaded:false,isUpdating:false,store:null,objectAtContent:function(e){var r=Ue(this,"content");var t=r.objectAt(e);return t&&t.getRecord()},update:function(){if(Ue(this,"isUpdating")){return}var e=Ue(this,"store");var r=Ue(this,"type.modelName");return e.fetchAll(r,this)},addInternalModel:function(e,r){var t=Ue(this,"content");if(r===undefined){t.addObject(e)}else if(!t.contains(e)){t.insertAt(r,e)}},removeInternalModel:function(e){Ue(this,"content").removeObject(e)},save:function(){var e=this;var r="DS: RecordArray#save "+Ue(this,"type");var t=Ember.RSVP.all(this.invoke("save"),r).then(function(r){return e},null,"DS: RecordArray#save return RecordArray");return Re.create({promise:t})},_dissociateFromOwnRecords:function(){var e=this;this.get("content").forEach(function(r){var t=r._recordArrays;if(t){t["delete"](e)}})},_unregisterFromManager:function(){var e=Ue(this,"manager");e.unregisterFilteredRecordArray(this)},willDestroy:function(){this._unregisterFromManager();this._dissociateFromOwnRecords();Ke(this,"content",undefined);this._super.apply(this,arguments)}});var Be=Ember.get;var He=je.extend({filterFunction:null,isLoaded:true,replace:function(){var e=Be(this,"type").toString();throw new Error("The result of a client-side filter (on "+e+") is immutable.")},_updateFilter:function(){var e=Be(this,"manager");e.updateFilter(this,Be(this,"type"),Be(this,"filterFunction"))},updateFilter:Ember.observer(function(){Ember.run.once(this,this._updateFilter)},"filterFunction")});var Ve=Ember.get;function We(e){var r=Ember.create(null);for(var t in e){r[t]=e[t]}return r}var qe=je.extend({query:null,replace:function(){var e=Ve(this,"type").toString();throw new Error("The result of a server query (on "+e+") is immutable.")},load:function(e){var r=Ve(this,"store");var t=Ve(this,"type");var i=t.modelName;var n=r.pushMany(i,e);var a=r.metadataFor(i);var o=Ember.A(n).mapBy("_internalModel");this.setProperties({content:Ember.A(o),isLoaded:true,meta:We(a)});o.forEach(function(e){this.manager.recordArraysForRecord(e).add(this)},this);Ember.run.once(this,"trigger","didLoad")}});var Qe=Ember.OrderedSet;var Xe=Ember.guidFor;var Ge=function(){this._super$constructor()};Ge.create=function(){var e=this;return new e};Ge.prototype=Ember.create(Qe.prototype);Ge.prototype.constructor=Ge;Ge.prototype._super$constructor=Qe;Ge.prototype.addWithIndex=function(e,r){var t=Xe(e);var i=this.presenceSet;var n=this.list;if(i[t]===true){return}i[t]=true;if(r===undefined||r==null){n.push(e)}else{n.splice(r,0,e)}this.size+=1;return this};var Je=Ge;var Ye=Ember.get;var Ze=Ember.EnumerableUtils.forEach;var er=Ember.EnumerableUtils.indexOf;var rr=Ember.Object.extend({init:function(){this.filteredRecordArrays=f.create({defaultValue:function(){return[]}});this.changedRecords=[];this._adapterPopulatedRecordArrays=[]},recordDidChange:function(e){if(this.changedRecords.push(e)!==1){return}Ember.run.schedule("actions",this,this.updateRecordArrays)},recordArraysForRecord:function(e){e._recordArrays=e._recordArrays||Je.create();return e._recordArrays},updateRecordArrays:function(){Ze(this.changedRecords,function(e){if(e.isDeleted()){this._recordWasDeleted(e)}else{this._recordWasChanged(e)}},this);this.changedRecords.length=0},_recordWasDeleted:function(e){var r=e._recordArrays;if(!r){return}r.forEach(function(r){r.removeInternalModel(e)});e._recordArrays=null},_recordWasChanged:function(e){var r=e.type;var t=this.filteredRecordArrays.get(r);var i;Ze(t,function(t){i=Ye(t,"filterFunction");if(i){this.updateRecordArray(t,i,r,e)}},this)},recordWasLoaded:function(e){var r=e.type;var t=this.filteredRecordArrays.get(r);var i;Ze(t,function(t){i=Ye(t,"filterFunction");this.updateRecordArray(t,i,r,e)},this)},updateRecordArray:function(e,r,t,i){var n;if(!r){n=true}else{n=r(i.getRecord())}var a=this.recordArraysForRecord(i);if(n){if(!a.has(e)){e.addInternalModel(i);a.add(e)}}else if(!n){a["delete"](e);e.removeInternalModel(i)}},updateFilter:function(e,r,t){var i=this.store.typeMapFor(r);var n=i.records;var a;for(var o=0,s=n.length;o<s;o++){a=n[o];if(!a.isDeleted()&&!a.isEmpty()){this.updateRecordArray(e,t,r,a)}}},createRecordArray:function(e){var r=je.create({type:e,content:Ember.A(),store:this.store,isLoaded:true,manager:this});this.registerFilteredRecordArray(r,e);return r},createFilteredRecordArray:function(e,r,t){var i=He.create({query:t,type:e,content:Ember.A(),store:this.store,manager:this,filterFunction:r});this.registerFilteredRecordArray(i,e,r);return i},createAdapterPopulatedRecordArray:function(e,r){var t=qe.create({type:e,query:r,content:Ember.A(),store:this.store,manager:this});this._adapterPopulatedRecordArrays.push(t);return t},registerFilteredRecordArray:function(e,r,t){var i=this.filteredRecordArrays.get(r);i.push(e);this.updateFilter(e,r,t)},unregisterFilteredRecordArray:function(e){var r=this.filteredRecordArrays.get(e.type);var t=er(r,e);r.splice(t,1)},willDestroy:function(){this._super.apply(this,arguments);this.filteredRecordArrays.forEach(function(e){Ze(ir(e),tr)});Ze(this._adapterPopulatedRecordArrays,tr)}});function tr(e){e.destroy()}function ir(e){var r=e.length;var t=Ember.A();for(var i=0;i<r;i++){t=t.concat(e[i])}return t}function nr(e){this._container=e;this._cache=F.create(null)}nr.prototype=F.create(null);F.merge(nr.prototype,{get:function(e,r,t){var i=this._cache;var n=e+":"+r;if(!(n in i)){var a=this.instanceFor(n)||this._findInstance(e,t);if(a){i[n]=a}}return i[n]},_findInstance:function(e,r){for(var t=0,i=r.length;t<i;t++){
var n=r[t];var a=e+":"+n;var o=this.instanceFor(a);if(o){return o}}},instanceFor:function(e){var r=this._cache;if(!r[e]){var t=this._container.lookup(e);if(t){r[e]=t}}return r[e]},destroy:function(){var e=this._cache;var r=F.keys(e);for(var t=0,i=r.length;t<i;t++){var n=r[t];var a=e[n];if(a){a.destroy()}}this._container=null},constructor:nr,toString:function(){return"ContainerInstanceCache"}});var ar=nr;function or(e,r){if(!r||typeof r!=="object"){return e}var t=Ember.keys(r);var i;var n=t.length;for(var a=0;a<n;a++){i=t[a];e[i]=r[i]}return e}var sr=or;var lr=Ember.get;function ur(e,r){if(r.value===r.originalValue){delete e._attributes[r.name];e.send("propertyWasReset",r.name)}else if(r.value!==r.oldValue){e.send("becomeDirty")}e.updateRecordArraysLater()}var cr={initialState:"uncommitted",isDirty:true,uncommitted:{didSetProperty:ur,loadingData:Ember.K,propertyWasReset:function(e,r){var t=Ember.keys(e._attributes).length;var i=t>0;if(!i){e.send("rolledBack")}},pushedData:Ember.K,becomeDirty:Ember.K,willCommit:function(e){e.transitionTo("inFlight")},reloadRecord:function(e,r){r(e.store.reloadRecord(e))},rolledBack:function(e){e.transitionTo("loaded.saved")},becameInvalid:function(e){e.transitionTo("invalid")},rollback:function(e){e.rollback();e.triggerLater("ready")}},inFlight:{isSaving:true,didSetProperty:ur,becomeDirty:Ember.K,pushedData:Ember.K,unloadRecord:vr,willCommit:Ember.K,didCommit:function(e){var r=lr(this,"dirtyType");e.transitionTo("saved");e.send("invokeLifecycleCallbacks",r)},becameInvalid:function(e){e.transitionTo("invalid");e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted");e.triggerLater("becameError",e)}},invalid:{isValid:false,deleteRecord:function(e){e.transitionTo("deleted.uncommitted");e.disconnectRelationships()},didSetProperty:function(e,r){e.getErrors().remove(r.name);ur(e,r)},becomeDirty:Ember.K,pushedData:Ember.K,willCommit:function(e){e.getErrors().clear();e.transitionTo("inFlight")},rolledBack:function(e){e.getErrors().clear();e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")},invokeLifecycleCallbacks:function(e){e.triggerLater("becameInvalid",e)},exit:function(e){e._inFlightAttributes=Ember.create(null)}}};function dr(e){var r={};var t;for(var i in e){t=e[i];if(t&&typeof t==="object"){r[i]=dr(t)}else{r[i]=t}}return r}function hr(e,r){for(var t in r){e[t]=r[t]}return e}function fr(e){var r=dr(cr);return hr(r,e)}var pr=fr({dirtyType:"created",isNew:true});pr.invalid.rolledBack=function(e){e.transitionTo("deleted.saved")};pr.uncommitted.rolledBack=function(e){e.transitionTo("deleted.saved")};var mr=fr({dirtyType:"updated"});pr.uncommitted.deleteRecord=function(e){e.disconnectRelationships();e.transitionTo("deleted.saved");e.send("invokeLifecycleCallbacks")};pr.uncommitted.rollback=function(e){cr.uncommitted.rollback.apply(this,arguments);e.transitionTo("deleted.saved")};pr.uncommitted.pushedData=function(e){e.transitionTo("loaded.updated.uncommitted");e.triggerLater("didLoad")};pr.uncommitted.propertyWasReset=Ember.K;function vr(e){}mr.inFlight.unloadRecord=vr;mr.uncommitted.deleteRecord=function(e){e.transitionTo("deleted.uncommitted");e.disconnectRelationships()};var yr={isEmpty:false,isLoading:false,isLoaded:false,isDirty:false,isSaving:false,isDeleted:false,isNew:false,isValid:true,rolledBack:Ember.K,unloadRecord:function(e){e.clearRelationships();e.transitionTo("deleted.saved")},propertyWasReset:Ember.K,empty:{isEmpty:true,loadingData:function(e,r){e._loadingPromise=r;e.transitionTo("loading")},loadedData:function(e){e.transitionTo("loaded.created.uncommitted");e.triggerLater("ready")},pushedData:function(e){e.transitionTo("loaded.saved");e.triggerLater("didLoad");e.triggerLater("ready")}},loading:{isLoading:true,exit:function(e){e._loadingPromise=null},pushedData:function(e){e.transitionTo("loaded.saved");e.triggerLater("didLoad");e.triggerLater("ready");e.didCleanError()},becameError:function(e){e.triggerLater("becameError",e)},notFound:function(e){e.transitionTo("empty")}},loaded:{initialState:"saved",isLoaded:true,loadingData:Ember.K,saved:{setup:function(e){var r=e._attributes;var t=Ember.keys(r).length>0;if(t){e.adapterDidDirty()}},didSetProperty:ur,pushedData:Ember.K,becomeDirty:function(e){e.transitionTo("updated.uncommitted")},willCommit:function(e){e.transitionTo("updated.inFlight")},reloadRecord:function(e,r){r(e.store.reloadRecord(e))},deleteRecord:function(e){e.transitionTo("deleted.uncommitted");e.disconnectRelationships()},unloadRecord:function(e){e.clearRelationships();e.transitionTo("deleted.saved")},didCommit:function(e){e.send("invokeLifecycleCallbacks",lr(e,"lastDirtyType"))},notFound:Ember.K},created:pr,updated:mr},deleted:{initialState:"uncommitted",dirtyType:"deleted",isDeleted:true,isLoaded:true,isDirty:true,setup:function(e){e.updateRecordArrays()},uncommitted:{willCommit:function(e){e.transitionTo("inFlight")},rollback:function(e){e.rollback();e.triggerLater("ready")},pushedData:Ember.K,becomeDirty:Ember.K,deleteRecord:Ember.K,rolledBack:function(e){e.transitionTo("loaded.saved");e.triggerLater("ready")}},inFlight:{isSaving:true,unloadRecord:vr,willCommit:Ember.K,didCommit:function(e){e.transitionTo("saved");e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted");e.triggerLater("becameError",e)},becameInvalid:function(e){e.transitionTo("invalid");e.triggerLater("becameInvalid",e)}},saved:{isDirty:false,setup:function(e){var r=e.store;r._dematerializeRecord(e)},invokeLifecycleCallbacks:function(e){e.triggerLater("didDelete",e);e.triggerLater("didCommit",e)},willCommit:Ember.K,didCommit:Ember.K},invalid:{isValid:false,didSetProperty:function(e,r){e.getErrors().remove(r.name);ur(e,r)},deleteRecord:Ember.K,becomeDirty:Ember.K,willCommit:Ember.K,rolledBack:function(e){e.getErrors().clear();e.transitionTo("loaded.saved");e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")}}},invokeLifecycleCallbacks:function(e,r){if(r==="created"){e.triggerLater("didCreate",e)}else{e.triggerLater("didUpdate",e)}e.triggerLater("didCommit",e)}};function br(e,r,t){e=hr(r?Ember.create(r):{},e);e.parentState=r;e.stateName=t;for(var i in e){if(!e.hasOwnProperty(i)||i==="parentState"||i==="stateName"){continue}if(typeof e[i]==="object"){e[i]=br(e[i],e,t+"."+i)}}return e}yr=br(yr,null,"root");var gr=yr;var Rr=Ember.EnumerableUtils.forEach;function Er(e,r,t,i){this.members=new Je;this.canonicalMembers=new Je;this.store=e;this.key=i.key;this.inverseKey=t;this.record=r;this.isAsync=i.options.async;this.relationshipMeta=i;this.inverseKeyForImplicit=this.record.constructor.modelName+this.key;this.linkPromise=null;this.hasData=false}Er.prototype={constructor:Er,destroy:Ember.K,clear:function(){var e=this.members.list;var r;while(e.length>0){r=e[0];this.removeRecord(r)}},disconnect:function(){this.members.forEach(function(e){this.removeRecordFromInverse(e)},this)},reconnect:function(){this.members.forEach(function(e){this.addRecordToInverse(e)},this)},removeRecords:function(e){var r=this;Rr(e,function(e){r.removeRecord(e)})},addRecords:function(e,r){var t=this;Rr(e,function(e){t.addRecord(e,r);if(r!==undefined){r++}})},addCanonicalRecords:function(e,r){for(var t=0;t<e.length;t++){if(r!==undefined){this.addCanonicalRecord(e[t],t+r)}else{this.addCanonicalRecord(e[t])}}},addCanonicalRecord:function(e,r){if(!this.canonicalMembers.has(e)){this.canonicalMembers.add(e);if(this.inverseKey){e._relationships.get(this.inverseKey).addCanonicalRecord(this.record)}else{if(!e._implicitRelationships[this.inverseKeyForImplicit]){e._implicitRelationships[this.inverseKeyForImplicit]=new Er(this.store,e,this.key,{options:{}})}e._implicitRelationships[this.inverseKeyForImplicit].addCanonicalRecord(this.record)}}this.flushCanonicalLater();this.setHasData(true)},removeCanonicalRecords:function(e,r){for(var t=0;t<e.length;t++){if(r!==undefined){this.removeCanonicalRecord(e[t],t+r)}else{this.removeCanonicalRecord(e[t])}}},removeCanonicalRecord:function(e,r){if(this.canonicalMembers.has(e)){this.removeCanonicalRecordFromOwn(e);if(this.inverseKey){this.removeCanonicalRecordFromInverse(e)}else{if(e._implicitRelationships[this.inverseKeyForImplicit]){e._implicitRelationships[this.inverseKeyForImplicit].removeCanonicalRecord(this.record)}}}this.flushCanonicalLater()},addRecord:function(e,r){if(!this.members.has(e)){this.members.addWithIndex(e,r);this.notifyRecordRelationshipAdded(e,r);if(this.inverseKey){e._relationships.get(this.inverseKey).addRecord(this.record)}else{if(!e._implicitRelationships[this.inverseKeyForImplicit]){e._implicitRelationships[this.inverseKeyForImplicit]=new Er(this.store,e,this.key,{options:{}})}e._implicitRelationships[this.inverseKeyForImplicit].addRecord(this.record)}this.record.updateRecordArraysLater()}this.setHasData(true)},removeRecord:function(e){if(this.members.has(e)){this.removeRecordFromOwn(e);if(this.inverseKey){this.removeRecordFromInverse(e)}else{if(e._implicitRelationships[this.inverseKeyForImplicit]){e._implicitRelationships[this.inverseKeyForImplicit].removeRecord(this.record)}}}},addRecordToInverse:function(e){if(this.inverseKey){e._relationships.get(this.inverseKey).addRecord(this.record)}},removeRecordFromInverse:function(e){var r=e._relationships.get(this.inverseKey);if(r){r.removeRecordFromOwn(this.record)}},removeRecordFromOwn:function(e){this.members["delete"](e);this.notifyRecordRelationshipRemoved(e);this.record.updateRecordArrays()},removeCanonicalRecordFromInverse:function(e){var r=e._relationships.get(this.inverseKey);if(r){r.removeCanonicalRecordFromOwn(this.record)}},removeCanonicalRecordFromOwn:function(e){this.canonicalMembers["delete"](e);this.flushCanonicalLater()},flushCanonical:function(){this.willSync=false;var e=[];for(var r=0;r<this.members.list.length;r++){if(this.members.list[r].isNew()){e.push(this.members.list[r])}}this.members=this.canonicalMembers.copy();for(r=0;r<e.length;r++){this.members.add(e[r])}},flushCanonicalLater:function(){if(this.willSync){return}this.willSync=true;var e=this;this.store._backburner.join(function(){e.store._backburner.schedule("syncRelationships",e,e.flushCanonical)})},updateLink:function(e){if(e!==this.link){this.link=e;this.linkPromise=null;this.record.notifyPropertyChange(this.key)}},findLink:function(){if(this.linkPromise){return this.linkPromise}else{var e=this.fetchLink();this.linkPromise=e;return e.then(function(e){return e})}},updateRecordsFromAdapter:function(e){var r=this;r.computeChanges(e);r.setHasData(true)},notifyRecordRelationshipAdded:Ember.K,notifyRecordRelationshipRemoved:Ember.K,setHasData:function(e){this.hasData=e}};var _r=Er;var Fr=Ember.get;var Ar=Ember.set;var Mr=Ember.ArrayPolyfills.filter;var zr=Ember.EnumerableUtils.map;var Sr=Ember.Object.extend(Ember.MutableArray,Ember.Evented,{init:function(){this.currentState=Ember.A([])},record:null,canonicalState:null,currentState:null,length:0,objectAt:function(e){if(!this.currentState[e]){return undefined}return this.currentState[e].getRecord()},flushCanonical:function(){var e=Mr.call(this.canonicalState,function(e){return!e.isDeleted()});var r=this.currentState.filter(function(e){return e.isNew()});e=e.concat(r);var t=this.length;this.arrayContentWillChange(0,this.length,e.length);if(!this.isDestroyed){this.set("length",e.length)}this.currentState=e;this.arrayContentDidChange(0,t,this.length);this.relationship.notifyHasManyChanged();this.record.updateRecordArrays()},isPolymorphic:false,isLoaded:false,relationship:null,internalReplace:function(e,r,t){if(!t){t=[]}this.arrayContentWillChange(e,r,t.length);this.currentState.splice.apply(this.currentState,[e,r].concat(t));this.set("length",this.currentState.length);this.arrayContentDidChange(e,r,t.length);if(t){this.relationship.notifyHasManyChanged()}this.record.updateRecordArrays()},internalRemoveRecords:function(e){var r;for(var t=0;t<e.length;t++){r=this.currentState.indexOf(e[t]);this.internalReplace(r,1)}},internalAddRecords:function(e,r){if(r===undefined){r=this.currentState.length}this.internalReplace(r,0,e)},replace:function(e,r,t){var i;if(r>0){i=this.currentState.slice(e,e+r);this.get("relationship").removeRecords(i)}if(t){this.get("relationship").addRecords(zr(t,function(e){return e._internalModel}),e)}},promise:null,loadingRecordsCount:function(e){this.loadingRecordsCount=e},loadedRecord:function(){this.loadingRecordsCount--;if(this.loadingRecordsCount===0){Ar(this,"isLoaded",true);this.trigger("didLoad")}},reload:function(){return this.relationship.reload()},save:function(){var e=this;var r="DS: ManyArray#save "+Fr(this,"type");var t=Ember.RSVP.all(this.invoke("save"),r).then(function(r){return e},null,"DS: ManyArray#save return ManyArray");return Re.create({promise:t})},createRecord:function(e){var r=Fr(this,"store");var t=Fr(this,"type");var i;i=r.createRecord(t.modelName,e);this.pushObject(i);return i},addRecord:function(e){this.addObject(e)},removeRecord:function(e){this.removeObject(e)}});var Tr=Ember.EnumerableUtils.map;var Cr=function(e,r,t,i){this._super$constructor(e,r,t,i);this.belongsToType=i.type;this.canonicalState=[];this.manyArray=Sr.create({canonicalState:this.canonicalState,store:this.store,relationship:this,type:this.store.modelFor(this.belongsToType),record:r});this.isPolymorphic=i.options.polymorphic;this.manyArray.isPolymorphic=this.isPolymorphic};Cr.prototype=Ember.create(_r.prototype);Cr.prototype.constructor=Cr;Cr.prototype._super$constructor=_r;Cr.prototype.destroy=function(){this.manyArray.destroy()};Cr.prototype._super$addCanonicalRecord=_r.prototype.addCanonicalRecord;Cr.prototype.addCanonicalRecord=function(e,r){if(this.canonicalMembers.has(e)){return}if(r!==undefined){this.canonicalState.splice(r,0,e)}else{this.canonicalState.push(e)}this._super$addCanonicalRecord(e,r)};Cr.prototype._super$addRecord=_r.prototype.addRecord;Cr.prototype.addRecord=function(e,r){if(this.members.has(e)){return}this._super$addRecord(e,r);this.manyArray.internalAddRecords([e],r)};Cr.prototype._super$removeCanonicalRecordFromOwn=_r.prototype.removeCanonicalRecordFromOwn;Cr.prototype.removeCanonicalRecordFromOwn=function(e,r){var t=r;if(!this.canonicalMembers.has(e)){return}if(t===undefined){t=this.canonicalState.indexOf(e)}if(t>-1){this.canonicalState.splice(t,1)}this._super$removeCanonicalRecordFromOwn(e,r)};Cr.prototype._super$flushCanonical=_r.prototype.flushCanonical;Cr.prototype.flushCanonical=function(){this.manyArray.flushCanonical();this._super$flushCanonical()};Cr.prototype._super$removeRecordFromOwn=_r.prototype.removeRecordFromOwn;Cr.prototype.removeRecordFromOwn=function(e,r){if(!this.members.has(e)){return}this._super$removeRecordFromOwn(e,r);if(r!==undefined){this.manyArray.currentState.removeAt(r)}else{this.manyArray.internalRemoveRecords([e])}};Cr.prototype.notifyRecordRelationshipAdded=function(e,r){var t=this.store.modelFor(this.relationshipMeta.type);this.record.notifyHasManyAdded(this.key,e,r)};Cr.prototype.reload=function(){var e=this;if(this.link){return this.fetchLink()}else{return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function(){e.manyArray.set("isLoaded",true);return e.manyArray})}};Cr.prototype.computeChanges=function(e){var r=this.canonicalMembers;var t=[];var i;var n;var a;e=kr(e);r.forEach(function(r){if(e.has(r)){return}t.push(r)});this.removeCanonicalRecords(t);e=e.toArray();i=e.length;for(a=0;a<i;a++){n=e[a];this.removeCanonicalRecord(n);this.addCanonicalRecord(n,a)}};Cr.prototype.fetchLink=function(){var e=this;return this.store.findHasMany(this.record,this.link,this.relationshipMeta).then(function(r){e.store._backburner.join(function(){e.updateRecordsFromAdapter(r)});return e.manyArray})};Cr.prototype.findRecords=function(){var e=this.manyArray;return this.store.findMany(Tr(e.toArray(),function(e){return e._internalModel})).then(function(){e.set("isLoaded",true);return e})};Cr.prototype.notifyHasManyChanged=function(){this.record.notifyHasManyAdded(this.key)};Cr.prototype.getRecords=function(){if(this.isAsync){var e=this;var r;if(this.link){r=this.findLink().then(function(){return e.findRecords()})}else{r=this.findRecords()}return Me.create({content:this.manyArray,promise:r})}else{if(!this.manyArray.get("isDestroyed")){this.manyArray.set("isLoaded",true)}return this.manyArray}};function kr(e){var r=new Je;if(e){for(var t=0,i=e.length;t<i;t++){r.add(e[t])}}return r}var Dr=Cr;var xr=function(e,r,t,i){this._super$constructor(e,r,t,i);this.record=r;this.key=i.key;this.inverseRecord=null;this.canonicalState=null};xr.prototype=Ember.create(_r.prototype);xr.prototype.constructor=xr;xr.prototype._super$constructor=_r;xr.prototype.setRecord=function(e){if(e){this.addRecord(e)}else if(this.inverseRecord){this.removeRecord(this.inverseRecord)}this.setHasData(true)};xr.prototype.setCanonicalRecord=function(e){if(e){this.addCanonicalRecord(e)}else if(this.inverseRecord){this.removeCanonicalRecord(this.inverseRecord)}this.setHasData(true)};xr.prototype._super$addCanonicalRecord=_r.prototype.addCanonicalRecord;xr.prototype.addCanonicalRecord=function(e){if(this.canonicalMembers.has(e)){return}if(this.canonicalState){this.removeCanonicalRecord(this.canonicalState)}this.canonicalState=e;this._super$addCanonicalRecord(e)};xr.prototype._super$flushCanonical=_r.prototype.flushCanonical;xr.prototype.flushCanonical=function(){if(this.inverseRecord&&this.inverseRecord.isNew()&&!this.canonicalState){return}this.inverseRecord=this.canonicalState;this.record.notifyBelongsToChanged(this.key);this._super$flushCanonical()};xr.prototype._super$addRecord=_r.prototype.addRecord;xr.prototype.addRecord=function(e){if(this.members.has(e)){return}var r=this.store.modelFor(this.relationshipMeta.type);if(this.inverseRecord){this.removeRecord(this.inverseRecord)}this.inverseRecord=e;this._super$addRecord(e);this.record.notifyBelongsToChanged(this.key)};xr.prototype.setRecordPromise=function(e){var r=e.get&&e.get("content");this.setRecord(r?r._internalModel:r)};xr.prototype._super$removeRecordFromOwn=_r.prototype.removeRecordFromOwn;xr.prototype.removeRecordFromOwn=function(e){if(!this.members.has(e)){return}this.inverseRecord=null;this._super$removeRecordFromOwn(e);this.record.notifyBelongsToChanged(this.key)};xr.prototype._super$removeCanonicalRecordFromOwn=_r.prototype.removeCanonicalRecordFromOwn;xr.prototype.removeCanonicalRecordFromOwn=function(e){if(!this.canonicalMembers.has(e)){return}this.canonicalState=null;this._super$removeCanonicalRecordFromOwn(e)};xr.prototype.findRecord=function(){if(this.inverseRecord){return this.store._findByInternalModel(this.inverseRecord)}else{return Ember.RSVP.Promise.resolve(null)}};xr.prototype.fetchLink=function(){var e=this;return this.store.findBelongsTo(this.record,this.link,this.relationshipMeta).then(function(r){if(r){e.addRecord(r)}return r})};xr.prototype.getRecord=function(){if(this.isAsync){var e;if(this.link){var r=this;e=this.findLink().then(function(){return r.findRecord()})}else{e=this.findRecord()}return Ee.create({promise:e,content:this.inverseRecord?this.inverseRecord.getRecord():null})}else{if(this.inverseRecord===null){return null}var t=this.inverseRecord.getRecord();return t}};var Pr=xr;var Ir=Ember.get;var wr=function(e,r,t){var i;var n=e.type.inverseFor(r.key,t);if(n){i=n.name}if(r.kind==="hasMany"){return new Dr(t,e,i,r)}else{return new Pr(t,e,i,r)}};var Lr=function(e){this.record=e;this.initializedRelationships=Ember.create(null)};Lr.prototype.has=function(e){return!!this.initializedRelationships[e]};Lr.prototype.get=function(e){var r=this.initializedRelationships;var t=Ir(this.record.type,"relationshipsByName");if(!r[e]&&t.get(e)){r[e]=wr(this.record,t.get(e),this.record.store)}return r[e]};var Nr=Lr;var Or=Ember.get;function $r(e){this._attributes=Ember.create(null);this._belongsToRelationships=Ember.create(null);this._belongsToIds=Ember.create(null);this._hasManyRelationships=Ember.create(null);this._hasManyIds=Ember.create(null);var r=e.getRecord();this.record=r;r.eachAttribute(function(e){this._attributes[e]=Or(r,e)},this);this.id=e.id;this._internalModel=e;this.type=e.type;this.modelName=e.type.modelName;this._changedAttributes=r.changedAttributes();if(Ember.platform.hasPropertyAccessors){var t=true;Ember.defineProperty(this,"constructor",{get:function(){if(t){t=false;t=true}return this.type}})}else{this.constructor=this.type}}$r.prototype={constructor:$r,id:null,record:null,type:null,modelName:null,attr:function(e){if(e in this._attributes){return this._attributes[e]}throw new Ember.Error("Model '"+Ember.inspect(this.record)+"' has no attribute named '"+e+"' defined.")},attributes:function(){return Ember.copy(this._attributes)},changedAttributes:function(){var e;var r=Ember.create(null);for(e in this._changedAttributes){r[e]=Ember.copy(this._changedAttributes[e])}return r},belongsTo:function(e,r){var t=r&&r.id;var i,n,a;var o;if(t&&e in this._belongsToIds){return this._belongsToIds[e]}if(!t&&e in this._belongsToRelationships){return this._belongsToRelationships[e]}i=this._internalModel._relationships.get(e);if(!(i&&i.relationshipMeta.kind==="belongsTo")){throw new Ember.Error("Model '"+Ember.inspect(this.record)+"' has no belongsTo relationship named '"+e+"' defined.")}a=Or(i,"hasData");n=Or(i,"inverseRecord");if(a){if(n&&!n.isDeleted()){if(t){o=Or(n,"id")}else{o=n.createSnapshot()}}else{o=null}}if(t){this._belongsToIds[e]=o}else{this._belongsToRelationships[e]=o}return o},hasMany:function(e,r){var t=r&&r.ids;var i,n,a;var o;if(t&&e in this._hasManyIds){return this._hasManyIds[e]}if(!t&&e in this._hasManyRelationships){return this._hasManyRelationships[e]}i=this._internalModel._relationships.get(e);if(!(i&&i.relationshipMeta.kind==="hasMany")){throw new Ember.Error("Model '"+Ember.inspect(this.record)+"' has no hasMany relationship named '"+e+"' defined.")}a=Or(i,"hasData");n=Or(i,"members");if(a){o=[];n.forEach(function(e){if(!e.isDeleted()){if(t){o.push(e.id)}else{o.push(e.createSnapshot())}}})}if(t){this._hasManyIds[e]=o}else{this._hasManyRelationships[e]=o}return o},eachAttribute:function(e,r){this.record.eachAttribute(e,r)},eachRelationship:function(e,r){this.record.eachRelationship(e,r)},get:function(e){if(e==="id"){return this.id}if(e in this._attributes){return this.attr(e)}var r=this._internalModel._relationships.get(e);if(r&&r.relationshipMeta.kind==="belongsTo"){return this.belongsTo(e)}if(r&&r.relationshipMeta.kind==="hasMany"){return this.hasMany(e)}return Or(this.record,e)},serialize:function(e){return this.record.store.serializerFor(this.modelName).serialize(this,e)},unknownProperty:function(e){return this.get(e)},_createSnapshot:function(){return this}};Ember.defineProperty($r.prototype,"typeKey",{enumerable:false,get:function(){return this.modelName},set:function(){}});var Ur=$r;var Kr=Ember.get;var jr=Ember.isEmpty;var Br=Ember.EnumerableUtils.map;var Hr=Ember.Object.extend(Ember.Enumerable,Ember.Evented,{registerHandlers:function(e,r,t){this.on("becameInvalid",e,r);this.on("becameValid",e,t)},errorsByAttributeName:Ember.reduceComputed("content",{initialValue:function(){return f.create({defaultValue:function(){return Ember.A()}})},addedItem:function(e,r){e.get(r.attribute).pushObject(r);return e},removedItem:function(e,r){e.get(r.attribute).removeObject(r);return e}}),errorsFor:function(e){return Kr(this,"errorsByAttributeName").get(e)},messages:Ember.computed.mapBy("content","message"),content:Ember.computed(function(){return Ember.A()}),unknownProperty:function(e){var r=this.errorsFor(e);if(jr(r)){return null}return r},nextObject:function(e,r,t){return Kr(this,"content").objectAt(e)},length:Ember.computed.oneWay("content.length").readOnly(),isEmpty:Ember.computed.not("length").readOnly(),add:function(e,r){var t=Kr(this,"isEmpty");r=this._findOrCreateMessages(e,r);Kr(this,"content").addObjects(r);this.notifyPropertyChange(e);this.enumerableContentDidChange();if(t&&!Kr(this,"isEmpty")){this.trigger("becameInvalid")}},_findOrCreateMessages:function(e,r){var t=this.errorsFor(e);return Br(Ember.makeArray(r),function(r){return t.findBy("message",r)||{attribute:e,message:r}})},remove:function(e){if(Kr(this,"isEmpty")){return}var r=Kr(this,"content").rejectBy("attribute",e);Kr(this,"content").setObjects(r);this.notifyPropertyChange(e);this.enumerableContentDidChange();if(Kr(this,"isEmpty")){this.trigger("becameValid")}},clear:function(){if(Kr(this,"isEmpty")){return}Kr(this,"content").clear();this.enumerableContentDidChange();this.trigger("becameValid")},has:function(e){return!jr(this.errorsFor(e))}});var Vr=Ember.RSVP.Promise;var Wr=Ember.get;var qr=Ember.set;var Qr=Ember.ArrayPolyfills.forEach;var Xr=Ember.ArrayPolyfills.map;var Gr=Ember.create(null);var Jr=Ember.create(null);function Yr(e){return Jr[e]||(Jr[e]=e.split("."))}function Zr(e){return Gr[e]||(Gr[e]=Yr(e)[0])}function et(e){return function(){return Wr(this.currentState,e)}}var rt=function Xi(e,r,t,i,n){this.type=e;this.id=r;this.store=t;this.container=i;this._data=n||Ember.create(null);this.modelName=e.modelName;this.errors=null;this.dataHasInitialized=false;this._deferredTriggers=[];this._attributes=Ember.create(null);this._inFlightAttributes=Ember.create(null);this._relationships=new Nr(this);this.currentState=gr.empty;this.isReloading=false;this._implicitRelationships=Ember.create(null)};rt.prototype={isEmpty:et("isEmpty"),isLoading:et("isLoading"),isLoaded:et("isLoaded"),isDirty:et("isDirty"),isSaving:et("isSaving"),isDeleted:et("isDeleted"),isNew:et("isNew"),isValid:et("isValid"),dirtyType:et("dirtyType"),constructor:rt,materializeRecord:function(){this.record=this.type._create({id:this.id,store:this.store,container:this.container,_internalModel:this});this._triggerDeferredTriggers()},recordObjectWillDestroy:function(){this.record=null},deleteRecord:function(){this.send("deleteRecord")},save:function(){var e="DS: Model#save "+this;var r=Ember.RSVP.defer(e);this.store.scheduleSave(this,r);return r.promise},startedReloading:function(){this.isReloading=true;if(this.record){qr(this.record,"isReloading",true)}},finishedReloading:function(){this.isReloading=false;if(this.record){qr(this.record,"isReloading",false)}},reload:function(){this.startedReloading();var e=this;var r="DS: Model#reload of "+this;return new Vr(function(r){e.send("reloadRecord",r)},r).then(function(){e.didCleanError();return e},function(r){e.didError();throw r},"DS: Model#reload complete, update flags")["finally"](function(){e.finishedReloading();e.updateRecordArrays()})},getRecord:function(){if(!this.record){this.materializeRecord()}return this.record},unloadRecord:function(){this.send("unloadRecord")},eachRelationship:function(e,r){return this.type.eachRelationship(e,r)},eachAttribute:function(e,r){return this.type.eachAttribute(e,r)},inverseFor:function(e){return this.type.inverseFor(e)},setupData:function(e){var r=tt(this._data,e);this.pushedData();if(this.record){this.record._notifyProperties(r)}this.didInitalizeData()},becameReady:function(){Ember.run.schedule("actions",this.store.recordArrayManager,this.store.recordArrayManager.recordWasLoaded,this)},didInitalizeData:function(){if(!this.dataHasInitialized){this.becameReady();this.dataHasInitialized=true}},destroy:function(){if(this.record){return this.record.destroy()}},createSnapshot:function(){return new Ur(this)},loadingData:function(e){this.send("loadingData",e)},loadedData:function(){this.send("loadedData");this.didInitalizeData()},notFound:function(){this.send("notFound")},pushedData:function(){this.send("pushedData")},flushChangedAttributes:function(){this._inFlightAttributes=this._attributes;this._attributes=Ember.create(null)},adapterWillCommit:function(){this.send("willCommit")},adapterDidDirty:function(){this.send("becomeDirty");this.updateRecordArraysLater()},send:function(e,r){var t=Wr(this,"currentState");if(!t[e]){this._unhandledEvent(t,e,r)}return t[e](this,r)},notifyHasManyAdded:function(e,r,t){if(this.record){this.record.notifyHasManyAdded(e,r,t)}},notifyHasManyRemoved:function(e,r,t){if(this.record){this.record.notifyHasManyRemoved(e,r,t)}},notifyBelongsToChanged:function(e,r){if(this.record){this.record.notifyBelongsToChanged(e,r)}},notifyPropertyChange:function(e){if(this.record){this.record.notifyPropertyChange(e)}},rollback:function(){var e=Ember.keys(this._attributes);this._attributes=Ember.create(null);if(Wr(this,"isError")){this._inFlightAttributes=Ember.create(null);this.didCleanError()}if(this.isDeleted()){this.becameReady();this.reconnectRelationships()}if(this.isNew()){this.clearRelationships()}if(this.isValid()){this._inFlightAttributes=Ember.create(null)}this.send("rolledBack");this.record._notifyProperties(e)},transitionTo:function(e){var r=Zr(e);var t=Wr(this,"currentState");var i=t;do{if(i.exit){i.exit(this)}i=i.parentState}while(!i.hasOwnProperty(r));var n=Yr(e);var a=[];var o=[];var s,l;for(s=0,l=n.length;s<l;s++){i=i[n[s]];if(i.enter){o.push(i)}if(i.setup){a.push(i)}}for(s=0,l=o.length;s<l;s++){o[s].enter(this)}qr(this,"currentState",i);if(this.record){qr(this.record,"currentState",i)}for(s=0,l=a.length;s<l;s++){a[s].setup(this)}this.updateRecordArraysLater()},_unhandledEvent:function(e,r,t){var i="Attempted to handle event `"+r+"` ";i+="on "+String(this)+" while in state ";i+=e.stateName+". ";if(t!==undefined){i+="Called with "+Ember.inspect(t)+"."}throw new Ember.Error(i)},triggerLater:function(){var e=arguments.length;var r=new Array(e);for(var t=0;t<e;t++){r[t]=arguments[t]}if(this._deferredTriggers.push(r)!==1){return}Ember.run.scheduleOnce("actions",this,"_triggerDeferredTriggers")},_triggerDeferredTriggers:function(){if(!this.record){return}for(var e=0,r=this._deferredTriggers.length;e<r;e++){this.record.trigger.apply(this.record,this._deferredTriggers[e])}this._deferredTriggers.length=0},clearRelationships:function(){this.eachRelationship(function(e,r){if(this._relationships.has(e)){var t=this._relationships.get(e);t.clear();t.destroy()}},this);var e=this;Qr.call(Ember.keys(this._implicitRelationships),function(r){e._implicitRelationships[r].clear();e._implicitRelationships[r].destroy()})},disconnectRelationships:function(){this.eachRelationship(function(e,r){this._relationships.get(e).disconnect()},this);var e=this;Qr.call(Ember.keys(this._implicitRelationships),function(r){e._implicitRelationships[r].disconnect()})},reconnectRelationships:function(){this.eachRelationship(function(e,r){this._relationships.get(e).reconnect()},this);var e=this;Qr.call(Ember.keys(this._implicitRelationships),function(r){e._implicitRelationships[r].reconnect()})},_preloadData:function(e){var r=this;Qr.call(Ember.keys(e),function(t){var i=Wr(e,t);var n=r.type.metaForProperty(t);if(n.isRelationship){r._preloadRelationship(t,i)}else{r._data[t]=i}})},_preloadRelationship:function(e,r){var t=this.type.metaForProperty(e);var i=t.type;if(t.kind==="hasMany"){this._preloadHasMany(e,r,i)}else{this._preloadBelongsTo(e,r,i)}},_preloadHasMany:function(e,r,t){var i=this;var n=Xr.call(r,function(e){return i._convertStringOrNumberIntoInternalModel(e,t)});this._relationships.get(e).updateRecordsFromAdapter(n)},_preloadBelongsTo:function(e,r,t){var i=this._convertStringOrNumberIntoInternalModel(r,t);this._relationships.get(e).setRecord(i)},_convertStringOrNumberIntoInternalModel:function(e,r){if(typeof e==="string"||typeof e==="number"){return this.store._internalModelForId(r,e)}if(e._internalModel){return e._internalModel}return e},updateRecordArrays:function(){this._updatingRecordArraysLater=false;this.store.dataWasUpdated(this.type,this)},setId:function(e){this.id=e;qr(this.record,"id",e)},didError:function(){this.isError=true;if(this.record){this.record.set("isError",true)}},didCleanError:function(){this.isError=false;if(this.record){this.record.set("isError",false)}},adapterDidCommit:function(e){var r;this.didCleanError();if(e){r=tt(this._data,e)}else{sr(this._data,this._inFlightAttributes)}this._inFlightAttributes=Ember.create(null);this.send("didCommit");this.updateRecordArraysLater();if(!e){return}this.record._notifyProperties(r);
},updateRecordArraysLater:function(){if(this._updatingRecordArraysLater){return}this._updatingRecordArraysLater=true;Ember.run.schedule("actions",this,this.updateRecordArrays)},getErrors:function(){if(this.errors){return this.errors}var e=Hr.create();e.registerHandlers(this,function(){this.send("becameInvalid")},function(){this.send("becameValid")});this.errors=e;return e},adapterDidInvalidate:function(e){var r=this.getErrors();Qr.call(Ember.keys(e),function(t){r.add(t,e[t])});this._saveWasRejected()},adapterDidError:function(){this.send("becameError");this.didError();this._saveWasRejected()},_saveWasRejected:function(){var e=Ember.keys(this._inFlightAttributes);for(var r=0;r<e.length;r++){if(this._attributes[e[r]]===undefined){this._attributes[e[r]]=this._inFlightAttributes[e[r]]}}this._inFlightAttributes=Ember.create(null)},toString:function(){if(this.record){return this.record.toString()}else{return"<"+this.modelName+":"+this.id+">"}}};function tt(e,r){var t=[];if(!r||typeof r!=="object"){return t}var i=Ember.keys(r);var n=i.length;var a,o,s;for(a=0;a<n;a++){s=i[a];o=r[s];if(e[s]!==o){t.push(s)}e[s]=o}return t}var it=rt;var nt=Ember.get;var at=Ember.EnumerableUtils.intersection;var ot=["currentState","data","store"];var st=Ember.computed("currentState",function(e){return nt(this._internalModel.currentState,e)}).readOnly();var lt=Ember.Object.extend(Ember.Evented,{_recordArrays:undefined,_relationships:undefined,_internalModel:null,store:null,isEmpty:st,isLoading:st,isLoaded:st,isDirty:st,isSaving:st,isDeleted:st,isNew:st,isValid:st,dirtyType:st,isError:false,isReloading:false,id:null,errors:Ember.computed(function(){return this._internalModel.getErrors()}).readOnly(),serialize:function(e){return this.store.serialize(this,e)},toJSON:function(e){var r=this.store.serializerFor("-default");var t=this._internalModel.createSnapshot();return r.serialize(t,e)},ready:Ember.K,didLoad:Ember.K,didUpdate:Ember.K,didCreate:Ember.K,didDelete:Ember.K,becameInvalid:Ember.K,becameError:Ember.K,rolledBack:Ember.K,data:Ember.computed.readOnly("_internalModel._data"),send:function(e,r){return this._internalModel.send(e,r)},transitionTo:function(e){return this._internalModel.transitionTo(e)},deleteRecord:function(){this._internalModel.deleteRecord()},destroyRecord:function(){this.deleteRecord();return this.save()},unloadRecord:function(){if(this.isDestroyed){return}this._internalModel.unloadRecord()},_notifyProperties:function(e){Ember.beginPropertyChanges();var r;for(var t=0,i=e.length;t<i;t++){r=e[t];this.notifyPropertyChange(r)}Ember.endPropertyChanges()},changedAttributes:function(){var e=nt(this._internalModel,"_data");var r=nt(this._internalModel,"_attributes");var t=Ember.create(null);var i;for(i in r){t[i]=[e[i],r[i]]}return t},rollback:function(){this._internalModel.rollback()},_createSnapshot:function(){return this._internalModel.createSnapshot()},toStringExtension:function(){return nt(this,"id")},save:function(){var e=this;return Ee.create({promise:this._internalModel.save().then(function(){return e})})},reload:function(){var e=this;return Ee.create({promise:this._internalModel.reload().then(function(){return e})})},trigger:function(e){var r=arguments.length;var t=new Array(r-1);for(var i=1;i<r;i++){t[i-1]=arguments[i]}Ember.tryInvoke(this,e,t);this._super.apply(this,arguments)},willDestroy:function(){this._internalModel.clearRelationships();this._internalModel.recordObjectWillDestroy();this._super.apply(this,arguments)},willMergeMixin:function(e){var r=this.constructor},attr:function(){},belongsTo:function(){},hasMany:function(){}});lt.reopenClass({_create:lt.create,create:function(){throw new Ember.Error("You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.")},modelName:null});var ut=lt;var ct;try{Ember.computed({get:function(){},set:function(){}});ct=true}catch(dt){ct=false}var ht=ct;var ft=Ember.computed;var pt=function(){var e=[];var r=arguments[arguments.length-1];if(typeof r==="function"||ht){return ft.apply(null,arguments)}for(var t=0,i=arguments.length-1;t<i;t++){e.push(arguments[t])}var n;if(r.set){n=function(e,t){if(arguments.length>1){return r.set.call(this,e,t)}else{return r.get.call(this,e)}}}else{n=function(e){return r.get.call(this,e)}}e.push(n);return ft.apply(null,e)};var mt=Rt;var vt=Ember.get;ut.reopenClass({attributes:Ember.computed(function(){var e=h.create();this.eachComputedProperty(function(r,t){if(t.isAttribute){t.name=r;e.set(r,t)}});return e}).readOnly(),transformedAttributes:Ember.computed(function(){var e=h.create();this.eachAttribute(function(r,t){if(t.type){e.set(r,t.type)}});return e}).readOnly(),eachAttribute:function(e,r){vt(this,"attributes").forEach(function(t,i){e.call(r,i,t)},r)},eachTransformedAttribute:function(e,r){vt(this,"transformedAttributes").forEach(function(t,i){e.call(r,i,t)})}});ut.reopen({eachAttribute:function(e,r){this.constructor.eachAttribute(e,r)}});function yt(e,r,t){if(typeof r.defaultValue==="function"){return r.defaultValue.apply(null,arguments)}else{return r.defaultValue}}function bt(e,r){return r in e._attributes||r in e._inFlightAttributes||r in e._data}function gt(e,r){if(r in e._attributes){return e._attributes[r]}else if(r in e._inFlightAttributes){return e._inFlightAttributes[r]}else{return e._data[r]}}function Rt(e,r){if(typeof e==="object"){r=e;e=undefined}else{r=r||{}}var t={type:e,isAttribute:true,options:r};return pt({get:function(e){var t=this._internalModel;if(bt(t,e)){return gt(t,e)}else{return yt(this,r,e)}},set:function(e,r){var t=this._internalModel;var i=gt(t,e);if(r!==i){t._attributes[e]=r;this._internalModel.send("didSetProperty",{name:e,oldValue:i,originalValue:t._data[e],value:r})}return r}}).meta(t)}var Et=ut;var _t=Ember.Backburner||Ember.__loader.require("backburner")["default"]||Ember.__loader.require("backburner")["Backburner"];if(!_t.prototype.join){var Ft=function(e){return typeof e==="string"};_t.prototype.join=function(){var e,r;if(this.currentInstance){var t=arguments.length;if(t===1){e=arguments[0];r=null}else{r=arguments[0];e=arguments[1]}if(Ft(e)){e=r[e]}if(t===1){return e()}else if(t===2){return e.call(r)}else{var i=new Array(t-2);for(var n=0,a=t-2;n<a;n++){i[n]=arguments[n+2]}return e.apply(r,i)}}else{return this.run.apply(this,arguments)}}}function At(e,r){var t=e;if(!e.then){t=e.getRecord()}else{t=e.then(function(e){return e.getRecord()})}return _e(t,r)}var Mt=Ember.get;var zt=Ember.set;var St=Ember.run.once;var Tt=Ember.isNone;var Ct=Ember.EnumerableUtils.forEach;var kt=Ember.EnumerableUtils.indexOf;var Dt=Ember.EnumerableUtils.map;var xt=Ember.RSVP.Promise;var Pt=Ember.copy;var It;var wt=Ember.Service;if(!wt){wt=Ember.Object}It=wt.extend({init:function(){this._backburner=new _t(["normalizeRelationships","syncRelationships","finished"]);this.typeMaps={};this.recordArrayManager=rr.create({store:this});this._pendingSave=[];this._instanceCache=new ar(this.container);this._pendingFetch=h.create()},adapter:"-rest",serialize:function(e,r){var t=e._internalModel.createSnapshot();return t.serialize(r)},defaultAdapter:Ember.computed("adapter",function(){var e=Mt(this,"adapter");e=this.retrieveManagedInstance("adapter",e);return e}),createRecord:function(e,r){var t=this.modelFor(e);var i=Pt(r)||Ember.create(null);if(Tt(i.id)){i.id=this._generateId(e,i)}i.id=J(i.id);var n=this.buildInternalModel(t,i.id);var a=n.getRecord();n.loadedData();a.setProperties(i);n.eachRelationship(function(e,r){n._relationships.get(e).setHasData(true)});return a},_generateId:function(e,r){var t=this.adapterFor(e);if(t&&t.generateIdForRecord){return t.generateIdForRecord(this,e,r)}return null},deleteRecord:function(e){e.deleteRecord()},unloadRecord:function(e){e.unloadRecord()},find:function(e,r,t){if(arguments.length===1){return this.findAll(e)}if(Ember.typeOf(r)==="object"){return this.findQuery(e,r)}return this.findById(e,J(r),t)},fetchById:function(e,r,t){if(this.hasRecordForId(e,r)){return this.getById(e,r).reload()}else{return this.find(e,r,t)}},fetchAll:function(e){var r=this.modelFor(e);return this._fetchAll(r,this.all(e))},fetch:function(e,r,t){return this.fetchById(e,r,t)},findById:function(e,r,t){var i=this._internalModelForId(e,r);return this._findByInternalModel(i,t)},_findByInternalModel:function(e,r){var t;if(r){e._preloadData(r)}if(e.isEmpty()){t=this.scheduleFetch(e)}else if(e.isLoading()){t=e._loadingPromise}return At(t||e,"DS: Store#findByRecord "+e.typeKey+" with id: "+Mt(e,"id"))},findByIds:function(e,r){var t=this;return Fe(Ember.RSVP.all(Dt(r,function(r){return t.findById(e,r)})).then(Ember.A,null,"DS: Store#findByIds of "+e+" complete"))},fetchRecord:function(e){var r=e.type;var t=e.id;var i=this.adapterFor(r.modelName);var n=Ie(i,this,r,t,e);return n},scheduleFetchMany:function(e){var r=Dt(e,function(e){return e._internalModel});return xt.all(Dt(r,this.scheduleFetch,this))},scheduleFetch:function(e){var r=e.type;if(e._loadingPromise){return e._loadingPromise}var t=Ember.RSVP.defer("Fetching "+r+"with id: "+e.id);var i={record:e,resolver:t};var n=t.promise;e.loadingData(n);if(!this._pendingFetch.get(r)){this._pendingFetch.set(r,[i])}else{this._pendingFetch.get(r).push(i)}Ember.run.scheduleOnce("afterRender",this,this.flushAllPendingFetches);return n},flushAllPendingFetches:function(){if(this.isDestroyed||this.isDestroying){return}this._pendingFetch.forEach(this._flushPendingFetchForType,this);this._pendingFetch=h.create()},_flushPendingFetchForType:function(e,r){var t=this;var i=t.adapterFor(r.modelName);var n=!!i.findMany&&i.coalesceFindRequests;var a=Ember.A(e).mapBy("record");function o(e){e.resolver.resolve(t.fetchRecord(e.record))}function s(r){Ct(r,function(r){var t=Ember.A(e).findBy("record",r);if(t){var i=t.resolver;i.resolve(r)}});return r}function l(e){return function r(t){t=Ember.A(t);var i=e.reject(function(e){return t.contains(e)});if(i.length){}c(i)}}function u(e){return function(r){c(e,r)}}function c(r,t){Ct(r,function(r){var i=Ember.A(e).findBy("record",r);if(i){var n=i.resolver;n.reject(t)}})}if(e.length===1){o(e[0])}else if(n){var d=Ember.A(a).invoke("createSnapshot");var h=i.groupRecordsForFindMany(this,d);Ct(h,function(n){var a=Ember.A(n).mapBy("_internalModel");var c=Ember.A(a);var d=c.mapBy("id");if(d.length>1){we(i,t,r,d,c).then(s).then(l(c)).then(null,u(c))}else if(d.length===1){var h=Ember.A(e).findBy("record",a[0]);o(h)}else{}})}else{Ct(e,o)}},getById:function(e,r){if(this.hasRecordForId(e,r)){return this._internalModelForId(e,r).getRecord()}else{return null}},reloadRecord:function(e){var r=e.type.modelName;var t=this.adapterFor(r);var i=e.id;return this.scheduleFetch(e)},hasRecordForId:function(e,r){var t=this.modelFor(e);var i=J(r);var n=this.typeMapFor(t).idToRecord[i];return!!n&&n.isLoaded()},recordForId:function(e,r){return this._internalModelForId(e,r).getRecord()},_internalModelForId:function(e,r){var t=this.modelFor(e);var i=J(r);var n=this.typeMapFor(t).idToRecord;var a=n[i];if(!a||!n[i]){a=this.buildInternalModel(t,i)}return a},findMany:function(e){var r=this;return xt.all(Dt(e,function(e){return r._findByInternalModel(e)}))},findHasMany:function(e,r,t){var i=this.adapterFor(e.type.modelName);return Le(i,this,e,r,t)},findBelongsTo:function(e,r,t){var i=this.adapterFor(e.type.modelName);return Ne(i,this,e,r,t)},findQuery:function(e,r){var t=this.modelFor(e);var i=this.recordArrayManager.createAdapterPopulatedRecordArray(t,r);var n=this.adapterFor(e);return Fe($e(n,this,t,r,i))},findAll:function(e){return this.fetchAll(e)},_fetchAll:function(e,r){var t=this.adapterFor(e.modelName);var i=this.typeMapFor(e).metadata.since;zt(r,"isUpdating",true);return Fe(Oe(t,this,e,i))},didUpdateAll:function(e){var r=this.typeMapFor(e).findAllCache;zt(r,"isUpdating",false)},all:function(e){var r=this.modelFor(e);var t=this.typeMapFor(r);var i=t.findAllCache;if(i){this.recordArrayManager.updateFilter(i,r);return i}var n=this.recordArrayManager.createRecordArray(r);t.findAllCache=n;return n},unloadAll:function(e){if(arguments.length===0){var r=this.typeMaps;var t=Ember.keys(r);var i=Dt(t,u);Ct(i,this.unloadAll,this)}else{var n=this.modelFor(e);var a=this.typeMapFor(n);var o=a.records.slice();var s;for(var l=0;l<o.length;l++){s=o[l];s.unloadRecord();s.destroy()}a.findAllCache=null;a.metadata=Ember.create(null)}function u(e){return r[e]["type"].modelName}},filter:function(e,r,t){var i;var n=arguments.length;var a;var o=n===3;if(o){i=this.findQuery(e,r)}else if(arguments.length===2){t=r}e=this.modelFor(e);if(o){a=this.recordArrayManager.createFilteredRecordArray(e,t,r)}else{a=this.recordArrayManager.createFilteredRecordArray(e,t)}i=i||xt.cast(a);return Fe(i.then(function(){return a},null,"DS: Store#filter of "+e))},recordIsLoaded:function(e,r){return this.hasRecordForId(e,r)},metadataFor:function(e){var r=this.modelFor(e);return this.typeMapFor(r).metadata},setMetadataFor:function(e,r){var t=this.modelFor(e);Ember.merge(this.typeMapFor(t).metadata,r)},dataWasUpdated:function(e,r){this.recordArrayManager.recordDidChange(r)},scheduleSave:function(e,r){var t=e.createSnapshot();e.flushChangedAttributes();e.adapterWillCommit();this._pendingSave.push([t,r]);St(this,"flushPendingSave")},flushPendingSave:function(){var e=this._pendingSave.slice();this._pendingSave=[];Ct(e,function(e){var r=e[0];var t=e[1];var i=r._internalModel;var n=this.adapterFor(i.type.modelName);var a;if(Mt(i,"currentState.stateName")==="root.deleted.saved"){return t.resolve()}else if(i.isNew()){a="createRecord"}else if(i.isDeleted()){a="deleteRecord"}else{a="updateRecord"}t.resolve(Kt(n,this,a,r))},this)},didSaveRecord:function(e,r){if(r){this._backburner.schedule("normalizeRelationships",this,"_setupRelationships",e,e.type,r);this.updateId(e,r)}e.adapterDidCommit(r)},recordWasInvalid:function(e,r){e.adapterDidInvalidate(r)},recordWasError:function(e){e.adapterDidError()},updateId:function(e,r){var t=e.id;var i=J(r.id);this.typeMapFor(e.type).idToRecord[i]=e;e.setId(i)},typeMapFor:function(e){var r=Mt(this,"typeMaps");var t=Ember.guidFor(e);var i=r[t];if(i){return i}i={idToRecord:Ember.create(null),records:[],metadata:Ember.create(null),type:e};r[t]=i;return i},_load:function(e,r){var t=J(r.id);var i=this._internalModelForId(e,t);i.setupData(r);this.recordArrayManager.recordDidChange(i);return i},_modelForMixin:function(e){var r=X(e);var t=this.container._registry?this.container._registry:this.container;var i=t.resolve("mixin:"+r);if(i){t.register("model:"+r,DS.Model.extend(i))}var n=this.modelFactoryFor(r);if(n){n.__isMixin=true;n.__mixin=i}return n},modelFor:function(e){var r=this.modelFactoryFor(e);if(!r){r=this._modelForMixin(e)}if(!r){throw new Ember.Error("No model was found for '"+e+"'")}r.modelName=r.modelName||X(e);if(!("typeKey"in r)){Ember.defineProperty(r,"typeKey",{enumerable:true,configurable:false,get:function(){var e=this.modelName;if(e){e=Ember.String.camelize(this.modelName)}return e},set:function(){}})}return r},modelFactoryFor:function(e){var r=X(e);return this.container.lookupFactory("model:"+r)},push:function(e,r){var t=this._pushInternalModel(e,r);return t.getRecord()},_pushInternalModel:function(e,r){var t=this.modelFor(e);var i=Ember.EnumerableUtils.filter;if(Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS){}var n=this._load(e,r);var a=this;this._backburner.join(function(){a._backburner.schedule("normalizeRelationships",a,"_setupRelationships",n,t,r)});return n},_setupRelationships:function(e,r,t){t=Lt(this,r,t);jt(this,e,t)},pushPayload:function(e,r){var t;var i;if(!r){i=e;t=Ut(this.container)}else{i=r;t=this.serializerFor(e)}var n=this;this._adapterRun(function(){t.pushPayload(n,i)})},normalize:function(e,r){var t=this.serializerFor(e);var i=this.modelFor(e);return t.normalize(i,r)},update:function(e,r){return this.push(e,r)},pushMany:function(e,r){var t=r.length;var i=new Array(t);for(var n=0;n<t;n++){i[n]=this.push(e,r[n])}return i},metaForType:function(e,r){this.setMetadataFor(e,r)},buildInternalModel:function(e,r,t){var i=this.typeMapFor(e);var n=i.idToRecord;var a=new it(e,r,this,this.container,t);if(r){n[r]=a}i.records.push(a);return a},recordWasLoaded:function(e){this.recordArrayManager.recordWasLoaded(e)},dematerializeRecord:function(e){this._dematerializeRecord(e)},_dematerializeRecord:function(e){var r=e.type;var t=this.typeMapFor(r);var i=e.id;e.updateRecordArrays();if(i){delete t.idToRecord[i]}var n=kt(t.records,e);t.records.splice(n,1)},adapterFor:function(e){var r;if(typeof e!=="string"){r=e.modelName}else{r=e}return this.lookupAdapter(r)},_adapterRun:function(e){return this._backburner.run(e)},serializerFor:function(e){var r;if(typeof e!=="string"){r=e.modelName}else{r=e}var t=["application",this.adapterFor(r).get("defaultSerializer"),"-default"];var i=this.lookupSerializer(r,t);return i},retrieveManagedInstance:function(e,r,t){var i=X(r);var n=this._instanceCache.get(e,i,t);zt(n,"store",this);return n},lookupAdapter:function(e){return this.retrieveManagedInstance("adapter",e,this.get("_adapterFallbacks"))},_adapterFallbacks:Ember.computed("adapter",function(){var e=this.get("adapter");return["application",e,"-rest"]}),lookupSerializer:function(e,r){return this.retrieveManagedInstance("serializer",e,r)},willDestroy:function(){this.recordArrayManager.destroy();this.unloadAll();for(var e in this._containerCache){this._containerCache[e].destroy();delete this._containerCache[e]}delete this._containerCache}});function Lt(e,r,t,i){r.eachRelationship(function(r,i){var n=i.kind;var a=t[r];if(n==="belongsTo"){Nt(e,t,r,i,a)}else if(n==="hasMany"){$t(e,t,r,i,a)}});return t}function Nt(e,r,t,i,n){if(Tt(n)){return}if(n instanceof Et){r[t]=n._internalModel;return}var a;if(typeof n==="number"||typeof n==="string"){a=Ot(i,t,r);r[t]=e._internalModelForId(a,n)}else if(typeof n==="object"){r[t]=e._internalModelForId(n.type,n.id)}}function Ot(e,r,t){if(e.options.polymorphic){return t[r+"Type"]}else{return e.type}}function $t(e,r,t,i,n){if(Tt(n)){return}for(var a=0,o=n.length;a<o;a++){Nt(e,n,a,i,n[a])}}function Ut(e){return e.lookup("serializer:application")||e.lookup("serializer:-default")}function Kt(e,r,t,n){var a=n._internalModel;var o=n.modelName;var s=r.modelFor(o);var l=e[t](r,s,n);var u=De(r,e,o);var c="DS: Extract and notify about "+t+" completion of "+a;l=xt.cast(l,c);l=Ce(l,Te(ke,r));l=Ce(l,Te(ke,a));return l.then(function(e){var i;r._adapterRun(function(){if(e){i=u.extract(r,s,e,n.id,t)}r.didSaveRecord(a,i)});return a},function(e){if(e instanceof i){var t=u.extractErrors(r,s,e.errors,n.id);r.recordWasInvalid(a,t);e=new i(t)}else{r.recordWasError(a,e)}throw e},c)}function jt(e,r,t){var i=r.type;i.eachRelationship(function(e,i){var n=i.kind;var a=t[e];var o;if(t.links&&t.links[e]){o=r._relationships.get(e);o.updateLink(t.links[e])}if(a!==undefined){if(n==="belongsTo"){o=r._relationships.get(e);o.setCanonicalRecord(a)}else if(n==="hasMany"){o=r._relationships.get(e);o.updateRecordsFromAdapter(a)}}})}var Bt=It;var Ht=Vt;function Vt(e,r){e.optionsForType("serializer",{singleton:false});e.optionsForType("adapter",{singleton:false});e.register("store:application",r&&r.Store||Bt);var t=new he(e);t.registerDeprecations([{deprecated:"serializer:_default",valid:"serializer:-default"},{deprecated:"serializer:_rest",valid:"serializer:-rest"},{deprecated:"adapter:_rest",valid:"adapter:-rest"},{deprecated:"store:main",valid:"store:application"}]);e.register("serializer:-default",Q);e.register("serializer:-rest",ie);e.register("adapter:-rest",_)}var Wt=Ember.Object.extend({serialize:null,deserialize:null});var qt=Ember.isEmpty;function Qt(e){return e===e&&e!==Infinity&&e!==-Infinity}var Xt=Wt.extend({deserialize:function(e){var r;if(qt(e)){return null}else{r=Number(e);return Qt(r)?r:null}},serialize:function(e){var r;if(qt(e)){return null}else{r=Number(e);return Qt(r)?r:null}}});var Gt=Date.prototype.toISOString||function(){function e(e){if(e<10){return"0"+e}return e}return this.getUTCFullYear()+"-"+e(this.getUTCMonth()+1)+"-"+e(this.getUTCDate())+"T"+e(this.getUTCHours())+":"+e(this.getUTCMinutes())+":"+e(this.getUTCSeconds())+"."+(this.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};if(Ember.SHIM_ES5){if(!Date.prototype.toISOString){Date.prototype.toISOString=Gt}}var Jt=Wt.extend({deserialize:function(e){var r=typeof e;if(r==="string"){return new Date(Ember.Date.parse(e))}else if(r==="number"){return new Date(e)}else if(e===null||e===undefined){return e}else{return null}},serialize:function(e){if(e instanceof Date){return Gt.call(e)}else{return null}}});var Yt=Ember.isNone;var Zt=Wt.extend({deserialize:function(e){return Yt(e)?null:String(e)},serialize:function(e){return Yt(e)?null:String(e)}});var ei=Wt.extend({deserialize:function(e){var r=typeof e;if(r==="boolean"){return e}else if(r==="string"){return e.match(/^true$|^t$|^1$/i)!==null}else if(r==="number"){return e===1}else{return false}},serialize:function(e){return Boolean(e)}});var ri=ti;function ti(e){e.register("transform:boolean",ei);e.register("transform:date",Jt);e.register("transform:number",Xt);e.register("transform:string",Zt)}var ii=ni;function ni(e){e.injection("controller","store","store:application");e.injection("route","store","store:application");e.injection("data-adapter","store","store:application")}var ai=Ember.get;var oi=Ember.String.capitalize;var si=Ember.String.underscore;var li=Ember;var ui=li.assert;var ci=Ember.DataAdapter.extend({getFilters:function(){return[{name:"isNew",desc:"New"},{name:"isModified",desc:"Modified"},{name:"isClean",desc:"Clean"}]},detect:function(e){return e!==Et&&Et.detect(e)},columnsForType:function(e){var r=[{name:"id",desc:"Id"}];var t=0;var i=this;ai(e,"attributes").forEach(function(e,n){if(t++>i.attributeLimit){return false}var a=oi(si(n).replace("_"," "));r.push({name:n,desc:a})});return r},getRecords:function(e,r){if(arguments.length<2){var t=e._debugContainerKey;if(t){var i=t.match(/model:(.*)/);if(i){r=i[1]}}}ui("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support",!!r);return this.get("store").all(r)},getRecordColumnValues:function(e){var r=this;var t=0;var i={id:ai(e,"id")};e.eachAttribute(function(n){if(t++>r.attributeLimit){return false}var a=ai(e,n);i[n]=a});return i},getRecordKeywords:function(e){var r=[];var t=Ember.A(["id"]);e.eachAttribute(function(e){t.push(e)});t.forEach(function(t){r.push(ai(e,t))});return r},getRecordFilterValues:function(e){return{isNew:e.get("isNew"),isModified:e.get("isDirty")&&!e.get("isNew"),isClean:!e.get("isDirty")}},getRecordColor:function(e){var r="black";if(e.get("isNew")){r="green"}else if(e.get("isDirty")){r="blue"}return r},observeRecord:function(e,r){var t=Ember.A();var i=this;var n=Ember.A(["id","isNew","isDirty"]);e.eachAttribute(function(e){n.push(e)});n.forEach(function(n){var a=function(){r(i.wrapRecord(e))};Ember.addObserver(e,n,a);t.push(function(){Ember.removeObserver(e,n,a)})});var a=function(){t.forEach(function(e){e()})};return a}});var di=hi;function hi(e){e.register("data-adapter:main",ci)}var fi=pi;function pi(e){var r,t;if(e.registry&&e.container){r=e.registry;t=e.container}else{r=e;if(r.container){t=r.container()}else{t=r}}var i=t.lookup("store:application");r.register("service:store",i,{instantiate:false})}var mi=vi;function vi(e,r){yi(e,r);fi(e)}function yi(e,r){di(e,r);ri(e,r);ii(e,r);fe(e,r);Ht(e,r)}var bi=Ember.K;Ember.onLoad("Ember.Application",function(e){e.initializer({name:"ember-data",initialize:yi});if(e.instanceInitializer){e.instanceInitializer({name:"ember-data",initialize:fi})}else{e.initializer({name:"ember-data-store-service",after:"ember-data",initialize:fi})}e.initializer({name:"store",after:"ember-data",initialize:bi});e.initializer({name:"activeModelAdapter",before:"store",initialize:bi});e.initializer({name:"transforms",before:"store",initialize:bi});e.initializer({name:"data-adapter",before:"store",initialize:bi});e.initializer({name:"injectStore",before:"store",initialize:bi})});Ember.Date=Ember.Date||{};var gi=Date.parse;var Ri=[1,4,5,6,7,10,11];Ember.Date.parse=function(e){var r,t;var i=0;if(t=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(e)){for(var n=0,a;a=Ri[n];++n){t[a]=+t[a]||0}t[2]=(+t[2]||1)-1;t[3]=+t[3]||1;if(t[8]!=="Z"&&t[9]!==undefined){i=t[10]*60+t[11];if(t[9]==="+"){i=0-i}}r=Date.UTC(t[1],t[2],t[3],t[4],t[5]+i,t[6],t[7])}else{r=gi?gi(e):NaN}return r};if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.Date){Date.parse=Ember.Date.parse}Et.reopen({_debugInfo:function(){var e=["id"];var r={belongsTo:[],hasMany:[]};var t=[];this.eachAttribute(function(r,t){e.push(r)},this);this.eachRelationship(function(e,i){r[i.kind].push(e);t.push(e)});var i=[{name:"Attributes",properties:e,expand:true},{name:"Belongs To",properties:r.belongsTo,expand:true},{name:"Has Many",properties:r.hasMany,expand:true},{name:"Flags",properties:["isLoaded","isDirty","isSaving","isDeleted","isError","isNew","isValid"]}];return{propertyInfo:{includeOtherProperties:true,groups:i,expensiveProperties:t}}}});var Ei=Et;var _i=ci;var Fi=Ember.EnumerableUtils.forEach;var Ai=Ember.String.camelize;var Mi=Ember.Mixin.create({normalize:function(e,r,t){var i=this._super(e,r,t);return zi(this,this.store,e,i)},keyForRelationship:function(e,r,t){if(t==="serialize"&&this.hasSerializeRecordsOption(e)||t==="deserialize"&&this.hasDeserializeRecordsOption(e)){return this.keyForAttribute(e,t)}else{return this._super(e,r,t)||e}},serializeBelongsTo:function(e,r,t){var i=t.key;if(this.noSerializeOptionSpecified(i)){this._super(e,r,t);return}var n=this.hasSerializeIdsOption(i);var a=this.hasSerializeRecordsOption(i);var o=e.belongsTo(i);var s;if(n){s=this.keyForRelationship(i,t.kind,"serialize");if(!o){r[s]=null}else{r[s]=o.id}}else if(a){s=this.keyForAttribute(i,"serialize");if(!o){r[s]=null}else{r[s]=o.record.serialize({includeId:true});this.removeEmbeddedForeignKey(e,o,t,r[s])}}},serializeHasMany:function(e,r,t){var i=t.key;if(this.noSerializeOptionSpecified(i)){this._super(e,r,t);return}var n=this.hasSerializeIdsOption(i);var a=this.hasSerializeRecordsOption(i);var o,s;if(n){o=this.keyForRelationship(i,t.kind,"serialize");r[o]=e.hasMany(i,{ids:true})}else if(a){o=this.keyForAttribute(i,"serialize");s=e.hasMany(i);r[o]=Ember.A(s).map(function(r){var i=r.record.serialize({includeId:true});this.removeEmbeddedForeignKey(e,r,t,i);return i},this)}},removeEmbeddedForeignKey:function(e,r,t,i){if(t.kind==="hasMany"){return}else if(t.kind==="belongsTo"){var n=e.type.inverseFor(t.key,this.store);if(n){var a=n.name;var o=this.store.serializerFor(r.modelName);var s=o.keyForRelationship(a,n.kind,"deserialize");if(s){delete i[s]}}}},hasEmbeddedAlwaysOption:function(e){var r=this.attrsOption(e);return r&&r.embedded==="always"},hasSerializeRecordsOption:function(e){var r=this.hasEmbeddedAlwaysOption(e);var t=this.attrsOption(e);return r||t&&t.serialize==="records"},hasSerializeIdsOption:function(e){var r=this.attrsOption(e);return r&&(r.serialize==="ids"||r.serialize==="id")},noSerializeOptionSpecified:function(e){var r=this.attrsOption(e);return!(r&&(r.serialize||r.embedded))},hasDeserializeRecordsOption:function(e){var r=this.hasEmbeddedAlwaysOption(e);var t=this.attrsOption(e);return r||t&&t.deserialize==="records"},attrsOption:function(e){var r=this.get("attrs");return r&&(r[Ai(e)]||r[e])}});function zi(e,r,t,i){t.eachRelationship(function(t,n){if(e.hasDeserializeRecordsOption(t)){var a=r.modelFor(n.type);if(n.kind==="hasMany"){if(n.options.polymorphic){Ti(r,t,i)}else{Si(r,t,a,i)}}if(n.kind==="belongsTo"){if(n.options.polymorphic){ki(r,t,i)}else{Ci(r,t,a,i)}}}});return i}function Si(e,r,t,i){if(!i[r]){return i}var n=[];var a=e.serializerFor(t.modelName);Fi(i[r],function(r){var i=a.normalize(t,r,null);e.push(t.modelName,i);n.push(i.id)});i[r]=n;return i}function Ti(e,r,t){if(!t[r]){return t}var i=[];Fi(t[r],function(r){var t=r.type;var n=e.serializerFor(t);var a=e.modelFor(t);var o=n.normalize(a,r,null);e.push(a.modelName,o);i.push({id:o.id,type:t})});t[r]=i;return t}function Ci(e,r,t,i){if(!i[r]){return i}var n=e.serializerFor(t.modelName);var a=n.normalize(t,i[r],null);e.push(t.modelName,a);i[r]=a.id;return i}function ki(e,r,t){if(!t[r]){return t}var i=t[r];var n=i.type;var a=e.serializerFor(n);var o=e.modelFor(n);var s=a.normalize(o,i,null);e.push(o.modelName,s);t[r]=s.id;t[r+"Type"]=n;return t}var Di=Mi;function xi(e,r){var t,i;if(typeof e==="object"){t=e;i=undefined}else{t=r;i=e}if(typeof i==="string"){i=X(i)}t=t||{};var n={type:i,isRelationship:true,options:t,kind:"belongsTo",key:null};return pt({get:function(e){return this._internalModel._relationships.get(e).getRecord()},set:function(e,r){if(r===undefined){r=null}if(r&&r.then){this._internalModel._relationships.get(e).setRecordPromise(r)}else if(r){this._internalModel._relationships.get(e).setRecord(r._internalModel)}else{this._internalModel._relationships.get(e).setRecord(r)}return this._internalModel._relationships.get(e).getRecord()}}).meta(n)}Et.reopen({notifyBelongsToChanged:function(e){this.notifyPropertyChange(e)}});var Pi=xi;function Ii(e,r){if(typeof e==="object"){r=e;e=undefined}r=r||{};if(typeof e==="string"){e=X(e)}var t={type:e,isRelationship:true,options:r,kind:"hasMany",key:null};return pt({get:function(e){var r=this._internalModel._relationships.get(e);return r.getRecords()},set:function(e,r){var t=this._internalModel._relationships.get(e);t.clear();t.addRecords(Ember.A(r).mapBy("_internalModel"));return t.getRecords()}}).meta(t)}Et.reopen({notifyHasManyAdded:function(e){this.notifyPropertyChange(e)}});var wi=Ii;function Li(e){var r;r=e.type||e.key;if(e.kind==="hasMany"){r=w(X(r))}return r}function Ni(e){return{key:e.key,kind:e.kind,type:Li(e),options:e.options,parentType:e.parentType,isRelationship:true}}var Oi=Ember.get;var $i=Ember.ArrayPolyfills.filter;var Ui=Ember.computed(function(){if(Ember.testing===true&&Ui._cacheable===true){Ui._cacheable=false}var e=new f({defaultValue:function(){return[]}});this.eachComputedProperty(function(r,t){if(t.isRelationship){t.key=r;var i=e.get(Li(t));i.push({name:r,kind:t.kind})}});return e}).readOnly();var Ki=Ember.computed(function(){if(Ember.testing===true&&Ki._cacheable===true){Ki._cacheable=false}var e;var r=Ember.A();this.eachComputedProperty(function(t,i){if(i.isRelationship){i.key=t;e=Li(i);if(!r.contains(e)){r.push(e)}}});return r}).readOnly();var ji=Ember.computed(function(){if(Ember.testing===true&&ji._cacheable===true){ji._cacheable=false}var e=h.create();this.eachComputedProperty(function(r,t){if(t.isRelationship){t.key=r;var i=Ni(t);i.type=Li(t);e.set(r,i)}});return e}).readOnly();Et.reopen({didDefineProperty:function(e,r,t){if(t instanceof Ember.ComputedProperty){var i=t.meta();i.parentType=e.constructor}}});Et.reopenClass({typeForRelationship:function(e,r){var t=Oi(this,"relationshipsByName").get(e);return t&&r.modelFor(t.type)},inverseMap:Ember.computed(function(){return Ember.create(null)}),inverseFor:function(e,r){var t=Oi(this,"inverseMap");if(t[e]){return t[e]}else{var i=this._findInverseFor(e,r);t[e]=i;return i}},_findInverseFor:function(e,r){var t=this.typeForRelationship(e,r);if(!t){return null}var i=this.metaForProperty(e);var n=i.options;if(n.inverse===null){return null}var a,o,s;if(n.inverse){a=n.inverse;s=Ember.get(t,"relationshipsByName").get(a);o=s.kind}else{var l=c(this,t);if(l.length===0){return null}var u=$i.call(l,function(r){var i=t.metaForProperty(r.name).options;return e===i.inverse});if(u.length===1){l=u}a=l[0].name;o=l[0].kind}function c(r,t,i){var n=i||[];var a=Oi(t,"relationships");if(!a){return n}var o=a.get(r.modelName);o=$i.call(o,function(r){var i=t.metaForProperty(r.name).options;if(!i.inverse){return true}return e===i.inverse});if(o){n.push.apply(n,o)}if(r.superclass){c(r.superclass,t,n)}return n}return{type:t,name:a,kind:o}},relationships:Ui,relationshipNames:Ember.computed(function(){var e={hasMany:[],belongsTo:[]};this.eachComputedProperty(function(r,t){if(t.isRelationship){e[t.kind].push(r)}});return e}),relatedTypes:Ki,
relationshipsByName:ji,fields:Ember.computed(function(){var e=h.create();this.eachComputedProperty(function(r,t){if(t.isRelationship){e.set(r,t.kind)}else if(t.isAttribute){e.set(r,"attribute")}});return e}).readOnly(),eachRelationship:function(e,r){Oi(this,"relationshipsByName").forEach(function(t,i){e.call(r,i,t)})},eachRelatedType:function(e,r){Oi(this,"relatedTypes").forEach(function(t){e.call(r,t)})},determineRelationshipType:function(e,r){var t=e.key;var i=e.kind;var n=this.inverseFor(t,r);var a,o;if(!n){return i==="belongsTo"?"oneToNone":"manyToNone"}a=n.name;o=n.kind;if(o==="belongsTo"){return i==="belongsTo"?"oneToOne":"manyToOne"}else{return i==="belongsTo"?"oneToMany":"manyToMany"}}});Et.reopen({eachRelationship:function(e,r){this.constructor.eachRelationship(e,r)},relationshipFor:function(e){return Oi(this.constructor,"relationshipsByName").get(e)},inverseFor:function(e){return this.constructor.inverseFor(e,this.store)}});if(Ember.VERSION.match(/^1\.[0-7]\./)){throw new Ember.Error("Ember Data requires at least Ember 1.8.0, but you have "+Ember.VERSION+". Please upgrade your version of Ember, then upgrade Ember Data")}Ember.RSVP.Promise.cast=Ember.RSVP.Promise.cast||Ember.RSVP.resolve;ye.Store=It;ye.PromiseArray=Re;ye.PromiseObject=Ee;ye.PromiseManyArray=Me;ye.Model=Et;ye.RootState=gr;ye.attr=mt;ye.Errors=Hr;ye.InternalModel=it;ye.Snapshot=Ur;ye.Adapter=a;ye.InvalidError=i;ye.Serializer=B;ye.DebugAdapter=_i;ye.RecordArray=je;ye.FilteredRecordArray=He;ye.AdapterPopulatedRecordArray=qe;ye.ManyArray=Sr;ye.RecordArrayManager=rr;ye.RESTAdapter=_;ye.BuildURLMixin=v;ye.RESTSerializer=ie;ye.JSONSerializer=Q;ye.Transform=Wt;ye.DateTransform=Jt;ye.StringTransform=Zt;ye.NumberTransform=Xt;ye.BooleanTransform=ei;ye.ActiveModelAdapter=K;ye.ActiveModelSerializer=ce;ye.EmbeddedRecordsMixin=Di;ye.belongsTo=Pi;ye.hasMany=wi;ye.Relationship=_r;ye.ContainerProxy=he;ye._setupContainer=mi;Ember.defineProperty(ye,"normalizeModelName",{enumerable:true,writable:false,configurable:false,value:X});var Bi=false;if(Ember.platform.hasPropertyAccessors){Ember.defineProperty(ye,"FixtureAdapter",{get:function(){if(!Bi){Bi=true}return d}})}else{ye.FixtureAdapter=d}Ember.lookup.DS=ye;var Hi=ye;var Vi=Wi;function Wi(e){if(F.Helper){return F.Helper.helper(e)}if(F.HTMLBars){return F.HTMLBars.makeBoundHelper(e)}return F.Handlebars.makeBoundHelper(e)}var qi=Vi(function(e){var r,t;if(e.length===1){t=e[0];return I(t)}else{r=e[0];t=e[1];if((r|0)!==1){t=I(t)}return r+" "+t}});var Qi=Vi(function(e){return w(e[0])})}).call(this);