define([],function(){function n(n,e,r){function t(e,r){var t=n[r];if(t){var i=t.indexOf(e);i>=0&&t.splice(i,1)}}"function"==typeof e?Object.keys(n).forEach(t.bind(null,e)):r?t(r,e):e in n&&(n[e]=[])}function e(e){var r={},t={observe:function(n,e){var t=r[n];t&&t.push(e)},unobserve:n.bind(null,r)},i=function(n){return function(){return t["_"+n]}},f=function(n){return function(e){var i=t["_"+n];if(i!==e){t["_"+n]=e;var f=r[n];f.forEach(function(n){n(e,i)})}}};for(var u in e)"function"!=typeof e[u]?(r[u]=[],Object.defineProperty(t,"_"+u,{value:e[u],writable:!0}),Object.defineProperty(t,u,{enumerable:!0,get:i(u),set:f(u)})):t[u]=e[u];return t}return e});