From 7598de90cb50fe734e408e2494d5a4dd8fe85ed4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 21 Aug 2016 16:01:24 -0700 Subject: [PATCH] Allow unregistering a push subscription (#2921) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Allow unregistering a push subscription * Update frontend * ps - HTML5 tests DRY 🍾 --- homeassistant/components/frontend/version.py | 4 +- .../components/frontend/www_static/core.js | 8 +- .../components/frontend/www_static/core.js.gz | Bin 31529 -> 32126 bytes .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 123558 -> 123252 bytes .../www_static/home-assistant-polymer | 2 +- .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2274 -> 2279 bytes homeassistant/components/notify/html5.py | 24 +++ tests/components/notify/test_html5.py | 181 ++++++++++++++---- 10 files changed, 179 insertions(+), 44 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index fbe60169862..8a5ffe63a79 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,8 +1,8 @@ """DO NOT MODIFY. Auto-generated by script/fingerprint_frontend.""" FINGERPRINTS = { - "core.js": "b4ee3a700ef5549a36b436611e27d3a9", - "frontend.html": "203371247fdba69b4d4d92fd707a459a", + "core.js": "7901b14f238956024a19139d6c479d68", + "frontend.html": "b33df7a012ea6d2aaf353c4466d6554a", "mdi.html": "710b84acc99b32514f52291aba9cd8e8", "panels/ha-panel-dev-event.html": "3cc881ae8026c0fba5aa67d334a3ab2b", "panels/ha-panel-dev-info.html": "34e2df1af32e60fffcafe7e008a92169", diff --git a/homeassistant/components/frontend/www_static/core.js b/homeassistant/components/frontend/www_static/core.js index 4def07355e1..e336deae556 100644 --- a/homeassistant/components/frontend/www_static/core.js +++ b/homeassistant/components/frontend/www_static/core.js @@ -1,4 +1,4 @@ -!function(){"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}function e(t,e){return e={exports:{}},t(e,e.exports),e.exports}function n(t,e){var n=e.authToken,r=e.host;return De({authToken:n,host:r,isValidating:!0,isInvalid:!1,errorMessage:""})}function r(){return Ce.getInitialState()}function i(t,e){var n=e.errorMessage;return t.withMutations(function(t){return t.set("isValidating",!1).set("isInvalid",!0).set("errorMessage",n)})}function o(t,e){var n=e.authToken,r=e.host;return Re({authToken:n,host:r})}function u(){return Le.getInitialState()}function a(t,e){var n=e.rememberAuth;return n}function s(t){return t.withMutations(function(t){t.set("isStreaming",!0).set("useStreaming",!0).set("hasError",!1)})}function c(t){return t.withMutations(function(t){t.set("isStreaming",!1).set("useStreaming",!1).set("hasError",!1)})}function f(t){return t.withMutations(function(t){t.set("isStreaming",!1).set("hasError",!0)})}function h(){return Pe.getInitialState()}function l(t,e){var n=e.model,r=e.result,i=e.params,o=n.entity;if(!r)return t;var u=i.replace?Be({}):t.get(o),a=Array.isArray(r)?r:[r],s=n.fromJSON||Be;return t.set(o,u.withMutations(function(t){for(var e=0;e199&&u.status<300?t(e):n(e)},u.onerror=function(){return n({})},r?(u.setRequestHeader("Content-Type","application/json;charset=UTF-8"),u.send(JSON.stringify(r))):u.send()})}function A(t,e){var n=e.message;return t.set(t.size,n)}function D(){return In.getInitialState()}function C(t,e){t.dispatch(gn.NOTIFICATION_CREATED,{message:e})}function z(t){t.registerStores({notifications:In})}function R(t,e){if("lock"===t)return!0;if("garage_door"===t)return!0;var n=e.get(t);return!!n&&n.services.has("turn_on")}function L(t,e){return!!t&&("group"===t.domain?"on"===t.state||"off"===t.state:R(t.domain,e))}function M(t,e){return[Wn(t),function(t){return!!t&&t.services.has(e)}]}function j(t){return[yn.byId(t),Jn,L]}function N(t,e,n){function r(){var c=(new Date).getTime()-a;c0?i=setTimeout(r,e-c):(i=null,n||(s=t.apply(u,o),i||(u=o=null)))}var i,o,u,a,s;null==e&&(e=100);var c=function(){u=this,o=arguments,a=(new Date).getTime();var c=n&&!i;return i||(i=setTimeout(r,e)),c&&(s=t.apply(u,o),u=o=null),s};return c.clear=function(){i&&(clearTimeout(i),i=null)},c}function k(t,e){var n=e.component;return t.push(n)}function U(t,e){var n=e.components;return ar(n)}function H(){return sr.getInitialState()}function P(t,e){var n=e.latitude,r=e.longitude,i=e.location_name,o=e.temperature_unit,u=e.time_zone,a=e.version;return fr({latitude:n,longitude:r,location_name:i,temperature_unit:o,time_zone:u,serverVersion:a})}function x(){return hr.getInitialState()}function V(t,e){t.dispatch(or.SERVER_CONFIG_LOADED,e)}function q(t){rn(t,"GET","config").then(function(e){return V(t,e)})}function F(t,e){t.dispatch(or.COMPONENT_LOADED,{component:e})}function G(t){return[["serverComponent"],function(e){return e.contains(t)}]}function K(t){t.registerStores({serverComponent:sr,serverConfig:hr})}function Y(t,e){var n=e.pane;return n}function B(){return Ir.getInitialState()}function J(t,e){var n=e.panels;return Or(n)}function W(){return wr.getInitialState()}function X(t,e){var n=e.show;return!!n}function Q(){return Ar.getInitialState()}function Z(t,e){t.dispatch(mr.SHOW_SIDEBAR,{show:e})}function $(t,e){t.dispatch(mr.NAVIGATE,{pane:e})}function tt(t,e){t.dispatch(mr.PANELS_LOADED,{panels:e})}function et(t,e){var n=e.entityId;return n}function nt(){return kr.getInitialState()}function rt(t,e){t.dispatch(jr.SELECT_ENTITY,{entityId:e})}function it(t){t.dispatch(jr.SELECT_ENTITY,{entityId:null})}function ot(t){return!t||(new Date).getTime()-t>6e4}function ut(t,e){var n=e.date;return n.toISOString()}function at(){return xr.getInitialState()}function st(t,e){var n=e.date,r=e.stateHistory;return 0===r.length?t.set(n,qr({})):t.withMutations(function(t){r.forEach(function(e){return t.setIn([n,e[0].entity_id],qr(e.map(cn.fromJSON)))})})}function ct(){return Fr.getInitialState()}function ft(t,e){var n=e.stateHistory;return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,Br(e.map(cn.fromJSON)))})})}function ht(){return Jr.getInitialState()}function lt(t,e){var n=e.stateHistory,r=(new Date).getTime();return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,r)}),history.length>1&&t.set(Qr,r)})}function pt(){return Zr.getInitialState()}function _t(t,e){t.dispatch(Hr.ENTITY_HISTORY_DATE_SELECTED,{date:e})}function dt(t,e){void 0===e&&(e=null),t.dispatch(Hr.RECENT_ENTITY_HISTORY_FETCH_START,{});var n="history/period";return null!==e&&(n+="?filter_entity_id="+e),rn(t,"GET",n).then(function(e){return t.dispatch(Hr.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,{stateHistory:e})},function(){return t.dispatch(Hr.RECENT_ENTITY_HISTORY_FETCH_ERROR,{})})}function vt(t,e){return t.dispatch(Hr.ENTITY_HISTORY_FETCH_START,{date:e}),rn(t,"GET","history/period/"+e).then(function(n){return t.dispatch(Hr.ENTITY_HISTORY_FETCH_SUCCESS,{date:e,stateHistory:n})},function(){return t.dispatch(Hr.ENTITY_HISTORY_FETCH_ERROR,{})})}function yt(t){var e=t.evaluate(ei);return vt(t,e)}function St(t){t.registerStores({currentEntityHistoryDate:xr,entityHistory:Fr,isLoadingEntityHistory:Kr,recentEntityHistory:Jr,recentEntityHistoryUpdated:Zr})}function gt(t){t.registerStores({moreInfoEntityId:kr})}function mt(t,e){var n=e.model,r=e.result,i=e.params;if(null===t||"entity"!==n.entity||!i.replace)return t;for(var o=0;oQo}function ae(t){t.registerStores({currentLogbookDate:Uo,isLoadingLogbookEntries:Po,logbookEntries:Ko,logbookEntriesUpdated:Jo})}function se(t,e){return rn(t,"POST","template",{template:e})}function ce(t){return t.set("isListening",!0)}function fe(t,e){var n=e.interimTranscript,r=e.finalTranscript;return t.withMutations(function(t){return t.set("isListening",!0).set("isTransmitting",!1).set("interimTranscript",n).set("finalTranscript",r)})}function he(t,e){var n=e.finalTranscript;return t.withMutations(function(t){return t.set("isListening",!1).set("isTransmitting",!0).set("interimTranscript","").set("finalTranscript",n)})}function le(){return _u.getInitialState()}function pe(){return _u.getInitialState()}function _e(){return _u.getInitialState()}function de(t){return du[t.hassId]}function ve(t){var e=de(t);if(e){var n=e.finalTranscript||e.interimTranscript;t.dispatch(hu.VOICE_TRANSMITTING,{finalTranscript:n}),Zn.callService(t,"conversation","process",{text:n}).then(function(){t.dispatch(hu.VOICE_DONE)},function(){t.dispatch(hu.VOICE_ERROR)})}}function ye(t){var e=de(t);e&&(e.recognition.stop(),du[t.hassId]=!1)}function Se(t){ve(t),ye(t)}function ge(t){var e=Se.bind(null,t);e();var n=new webkitSpeechRecognition;du[t.hassId]={recognition:n,interimTranscript:"",finalTranscript:""},n.interimResults=!0,n.onstart=function(){return t.dispatch(hu.VOICE_START)},n.onerror=function(){return t.dispatch(hu.VOICE_ERROR)},n.onend=e,n.onresult=function(e){var n=de(t);if(n){for(var r="",i="",o=e.resultIndex;o=n)}function c(t,e){return h(t,e,0)}function f(t,e){return h(t,e,e)}function h(t,e,n){return void 0===t?n:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function l(t){return v(t)?t:C(t)}function p(t){return y(t)?t:z(t)}function _(t){return S(t)?t:R(t)}function d(t){return v(t)&&!g(t)?t:L(t)}function v(t){return!(!t||!t[dn])}function y(t){return!(!t||!t[vn])}function S(t){return!(!t||!t[yn])}function g(t){return y(t)||S(t)}function m(t){return!(!t||!t[Sn])}function E(t){this.next=t}function I(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function b(){return{value:void 0,done:!0}}function O(t){return!!A(t)}function w(t){return t&&"function"==typeof t.next}function T(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(In&&t[In]||t[bn]);if("function"==typeof e)return e}function D(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?H():v(t)?t.toSeq():V(t)}function z(t){return null===t||void 0===t?H().toKeyedSeq():v(t)?y(t)?t.toSeq():t.fromEntrySeq():P(t)}function R(t){return null===t||void 0===t?H():v(t)?y(t)?t.entrySeq():t.toIndexedSeq():x(t)}function L(t){return(null===t||void 0===t?H():v(t)?y(t)?t.entrySeq():t:x(t)).toSetSeq()}function M(t){this._array=t,this.size=t.length}function j(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function N(t){this._iterable=t,this.size=t.length||t.size}function k(t){this._iterator=t,this._iteratorCache=[]}function U(t){return!(!t||!t[wn])}function H(){return Tn||(Tn=new M([]))}function P(t){var e=Array.isArray(t)?new M(t).fromEntrySeq():w(t)?new k(t).fromEntrySeq():O(t)?new N(t).fromEntrySeq():"object"==typeof t?new j(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function x(t){var e=q(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function V(t){var e=q(t)||"object"==typeof t&&new j(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function q(t){return D(t)?new M(t):w(t)?new k(t):O(t)?new N(t):void 0}function F(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;u<=o;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function G(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new E(function(){var t=i[n?o-u:u];return u++>o?b():I(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function K(){throw TypeError("Abstract")}function Y(){}function B(){}function J(){}function W(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function X(t,e){return e?Q(e,t,"",{"":t}):Z(t)}function Q(t,e,n,r){return Array.isArray(e)?t.call(r,n,R(e).map(function(n,r){return Q(t,n,r,e)})):$(e)?t.call(r,n,z(e).map(function(n,r){return Q(t,n,r,e)})):e}function Z(t){return Array.isArray(t)?R(t).map(Z).toList():$(t)?z(t).map(Z).toMap():t}function $(t){return t&&(t.constructor===Object||void 0===t.constructor)}function tt(t){return t>>>1&1073741824|3221225471&t}function et(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return tt(n)}return"string"===e?t.length>jn?nt(t):rt(t):"function"==typeof t.hashCode?t.hashCode():it(t)}function nt(t){var e=Un[t];return void 0===e&&(e=rt(t),kn===Nn&&(kn=0,Un={}),kn++,Un[t]=e),e}function rt(t){for(var e=0,n=0;n0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ut(t,e){if(!t)throw new Error(e)}function at(t){ut(t!==1/0,"Cannot perform this action with an infinite size.")}function st(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ct(t){this._iter=t,this.size=t.size}function ft(t){this._iter=t,this.size=t.size}function ht(t){this._iter=t,this.size=t.size}function lt(t){var e=Mt(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=jt,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===En){var r=t.__iterator(e,n);return new E(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===mn?gn:mn,n)},e}function pt(t,e,n){var r=Mt(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,ln);return o===ln?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(En,i);return new E(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return I(r,a,e.call(n,u[1],a,t),i)})},r}function _t(t,e){var n=Mt(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=lt(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=jt,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function dt(t,e,n,r){var i=Mt(t);return r&&(i.has=function(r){var i=t.get(r,ln);return i!==ln&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,ln);return o!==ln&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){if(e.call(n,t,o,s))return a++,i(t,r?o:a-1,u)},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(En,o),a=0;return new E(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return I(i,r?c:a++,f,o)}})},i}function vt(t,e,n){var r=Ut().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function yt(t,e,n){var r=y(t),i=(m(t)?be():Ut()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=Lt(t);return i.map(function(e){return Ct(t,o(e))})}function St(t,e,n,r){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==n&&(n=0|n),s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return St(t.toSeq().cacheResult(),e,n,r);var h,l=a-o;l===l&&(h=l<0?0:l);var p=Mt(t);return p.size=0===h?h:t.size&&h||void 0,!r&&U(t)&&h>=0&&(p.get=function(e,n){return e=u(this,e),e>=0&&eh)return b();var t=i.next();return r||e===mn?t:e===gn?I(e,a-1,void 0,t):I(e,a-1,t.value[1],t)})},p}function gt(t,e,n){var r=Mt(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(En,i),a=!0;return new E(function(){if(!a)return b();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===En?t:I(r,s,c,t):(a=!1,b())})},r}function mt(t,e,n,r){var i=Mt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){if(!a||!(a=e.call(n,t,o,c)))return s++,i(t,r?o:s-1,u)}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(En,o),s=!0,c=0;return new E(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===mn?t:i===gn?I(i,c++,void 0,t):I(i,c++,t.value[1],t);var h=t.value;o=h[0],f=h[1],s&&(s=e.call(n,f,o,u))}while(s);return i===En?t:I(i,o,f,t)})},i}function Et(t,e){var n=y(t),r=[t].concat(e).map(function(t){return v(t)?n&&(t=p(t)):t=n?P(t):x(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&y(i)||S(t)&&S(i))return i}var o=new M(r);return n?o=o.toKeyedSeq():S(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function It(t,e,n){var r=Mt(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||s0}function Dt(t,e,n){var r=Mt(t);return r.size=new M(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this,i=this.__iterator(mn,e),o=0;!(n=i.next()).done&&t(n.value,o++,r)!==!1;);return o},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=l(t),T(r?t.reverse():t)}),o=0,u=!1;return new E(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?b():I(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ct(t,e){return U(t)?e:t.constructor(e)}function zt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Rt(t){return at(t.size),o(t)}function Lt(t){return y(t)?p:S(t)?_:d}function Mt(t){return Object.create((y(t)?z:S(t)?R:L).prototype)}function jt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function Nt(t,e){return t>e?1:t>>n)&hn,a=(0===n?r:r>>>n)&hn,s=u===a?[Zt(t,e,n+cn,r,i)]:(o=new Ft(e,r,i),u>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new Vt(t,o+1,u)}function ne(t,e,n){for(var r=[],i=0;i>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function ae(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function se(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;a0&&ro?0:o-n,c=u-n;return c>fn&&(c=fn),function(){if(i===c)return Bn;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>fn&&(f=fn),function(){for(;;){if(a){var t=a();if(t!==Bn)return t;a=null}if(c===f)return Bn;var o=e?--f:c++;a=n(s&&s[o],r-cn,i+(o<=t.size||n<0)return t.withMutations(function(t){n<0?me(t,n).set(0,r):me(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(_n);return n>=Ie(t._capacity)?i=ye(i,t.__ownerID,0,n,r,a):o=ye(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):_e(t._origin,t._capacity,t._level,o,i):t}function ye(t,e,r,i,o,u){var a=i>>>r&hn,s=t&&a0){var f=t&&t.array[a],h=ye(f,e,r-cn,i,o,u);return h===f?t:(c=Se(t,e),c.array[a]=h,c)}return s&&t.array[a]===o?t:(n(u),c=Se(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function Se(t,e){return e&&t&&e===t.ownerID?t:new le(t?t.array.slice():[],e)}function ge(t,e){if(e>=Ie(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&hn],r-=cn;return n}}function me(t,e,n){void 0!==e&&(e=0|e),void 0!==n&&(n=0|n);var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:n<0?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,h=0;a+h<0;)f=new le(f&&f.array.length?[void 0,f]:[],i),c+=cn,h+=1<=1<l?new le([],i):_;if(_&&p>l&&acn;y-=cn){var S=l>>>y&hn;v=v.array[S]=Se(v.array[S],i)}v.array[l>>>cn&hn]=_}if(s=p)a-=p,s-=p,c=cn,f=null,d=d&&d.removeBefore(i,0,a);else if(a>o||p>>c&hn;if(g!==p>>>c&hn)break;g&&(h+=(1<o&&(f=f.removeBefore(i,c,a-h)),f&&pi&&(i=a.size),v(u)||(a=a.map(function(t){return X(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),ie(t,e,r)}function Ie(t){return t>>cn<=fn&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):we(r,i)}function De(t){return null===t||void 0===t?Re():Ce(t)?t:Re().unshiftAll(t)}function Ce(t){return!(!t||!t[Wn])}function ze(t,e,n,r){var i=Object.create(Xn);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Re(){return Qn||(Qn=ze(0))}function Le(t){return null===t||void 0===t?ke():Me(t)&&!m(t)?t:ke().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function Me(t){return!(!t||!t[Zn])}function je(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function Ne(t,e){var n=Object.create($n);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function ke(){return tr||(tr=Ne(Jt()))}function Ue(t){return null===t||void 0===t?xe():He(t)?t:xe().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function He(t){return Me(t)&&m(t)}function Pe(t,e){var n=Object.create(er);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function xe(){return nr||(nr=Pe(Te()))}function Ve(t,e){var n,r=function(o){if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var u=Object.keys(t);Ge(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=Ut(o)},i=r.prototype=Object.create(rr);return i.constructor=r,r}function qe(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Fe(t){return t._name||t.constructor.name||"Record"}function Ge(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(t){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){ut(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Ye(t,e){if(t===e)return!0;if(!v(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||y(t)!==y(e)||S(t)!==S(e)||m(t)!==m(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!g(t);if(m(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&W(i[1],t)&&(n||W(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){if(n?!t.has(e):i?!W(e,t.get(r,ln)):!W(t.get(r,ln),e))return u=!1,!1});return u&&t.size===a}function Be(t,e,n){if(!(this instanceof Be))return new Be(t,e,n);if(ut(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),ee?-1:0}function rn(t){if(t.size===1/0)return 0;var e=m(t),n=y(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+un(et(t),et(e))|0}:function(t,e){r=r+un(et(t),et(e))|0}:e?function(t){r=31*r+et(t)|0}:function(t){r=r+et(t)|0});return on(i,r)}function on(t,e){return e=Dn(e,3432918353),e=Dn(e<<15|e>>>-15,461845907),e=Dn(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Dn(e^e>>>16,2246822507),e=Dn(e^e>>>13,3266489909),e=tt(e^e>>>16)}function un(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var an=Array.prototype.slice,sn="delete",cn=5,fn=1<r?b():I(t,i,n[e?r-i++:i++])})},t(j,z),j.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},j.prototype.has=function(t){return this._object.hasOwnProperty(t)},j.prototype.__iterate=function(t,e){for(var n=this,r=this._object,i=this._keys,o=i.length-1,u=0;u<=o;u++){var a=i[e?o-u:u];if(t(r[a],a,n)===!1)return u+1}return u},j.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new E(function(){var u=r[e?i-o:o];return o++>i?b():I(t,u,n[u])})},j.prototype[Sn]=!0,t(N,R),N.prototype.__iterateUncached=function(t,e){var n=this;if(e)return this.cacheResult().__iterate(t,e);var r=this._iterable,i=T(r),o=0;if(w(i))for(var u;!(u=i.next()).done&&t(u.value,o++,n)!==!1;);return o},N.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=T(n);if(!w(r))return new E(b);var i=0;return new E(function(){var e=r.next();return e.done?e:I(t,i++,e.value)})},t(k,R),k.prototype.__iterateUncached=function(t,e){var n=this;if(e)return this.cacheResult().__iterate(t,e);for(var r=this._iterator,i=this._iteratorCache,o=0;o=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return I(t,i,r[i++])})};var Tn;t(K,l),t(Y,K),t(B,K),t(J,K),K.Keyed=Y,K.Indexed=B,K.Set=J;var An,Dn="function"==typeof Math.imul&&Math.imul(4294967295,2)===-2?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Cn=Object.isExtensible,zn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Rn="function"==typeof WeakMap;Rn&&(An=new WeakMap);var Ln=0,Mn="__immutablehash__";"function"==typeof Symbol&&(Mn=Symbol(Mn));var jn=16,Nn=255,kn=0,Un={};t(st,z),st.prototype.get=function(t,e){return this._iter.get(t,e)},st.prototype.has=function(t){return this._iter.has(t)},st.prototype.valueSeq=function(){return this._iter.valueSeq()},st.prototype.reverse=function(){var t=this,e=_t(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},st.prototype.map=function(t,e){var n=this,r=pt(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},st.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?Rt(this):0,function(i){return t(i,e?--n:n++,r)}),e)},st.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(mn,e),r=e?Rt(this):0;return new E(function(){var i=n.next();return i.done?i:I(t,e?--r:r++,i.value,i)})},st.prototype[Sn]=!0,t(ct,R),ct.prototype.includes=function(t){return this._iter.includes(t)},ct.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},ct.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e),r=0;return new E(function(){var e=n.next();return e.done?e:I(t,r++,e.value,e)})},t(ft,L),ft.prototype.has=function(t){return this._iter.includes(t)},ft.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},ft.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){var e=n.next();return e.done?e:I(t,e.value,e.value,e)})},t(ht,z),ht.prototype.entrySeq=function(){return this._iter.toSeq()},ht.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){if(e){zt(e);var r=v(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],n)}},e)},ht.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r){zt(r);var i=v(r);return I(t,i?r.get(0):r[0],i?r.get(1):r[1],e)}}})},ct.prototype.cacheResult=st.prototype.cacheResult=ft.prototype.cacheResult=ht.prototype.cacheResult=jt,t(Ut,Y),Ut.prototype.toString=function(){return this.__toString("Map {","}")},Ut.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Ut.prototype.set=function(t,e){return Wt(this,t,e)},Ut.prototype.setIn=function(t,e){return this.updateIn(t,ln,function(){return e})},Ut.prototype.remove=function(t){return Wt(this,t,ln)},Ut.prototype.deleteIn=function(t){return this.updateIn(t,function(){return ln})},Ut.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},Ut.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=oe(this,kt(t),e,n);return r===ln?void 0:r},Ut.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Jt()},Ut.prototype.merge=function(){return ne(this,void 0,arguments)},Ut.prototype.mergeWith=function(t){var e=an.call(arguments,1);return ne(this,t,e)},Ut.prototype.mergeIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},Ut.prototype.mergeDeep=function(){return ne(this,re(void 0),arguments)},Ut.prototype.mergeDeepWith=function(t){var e=an.call(arguments,1);return ne(this,re(t),e)},Ut.prototype.mergeDeepIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},Ut.prototype.sort=function(t){return be(wt(this,t))},Ut.prototype.sortBy=function(t,e){return be(wt(this,e,t))},Ut.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Ut.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Ut.prototype.asImmutable=function(){return this.__ensureOwner()},Ut.prototype.wasAltered=function(){return this.__altered},Ut.prototype.__iterator=function(t,e){return new Gt(this,t,e)},Ut.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},Ut.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Bt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Ut.isMap=Ht;var Hn="@@__IMMUTABLE_MAP__@@",Pn=Ut.prototype;Pn[Hn]=!0,Pn[sn]=Pn.remove,Pn.removeIn=Pn.deleteIn,Pt.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;o=Vn)return $t(t,f,o,u);var _=t&&t===this.ownerID,d=_?f:i(f);return p?c?h===l-1?d.pop():d[h]=d.pop():d[h]=[o,u]:d.push([o,u]),_?(this.entries=d,this):new Pt(t,d)}},xt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=1<<((0===t?e:e>>>t)&hn),o=this.bitmap;return 0===(o&i)?r:this.nodes[ue(o&i-1)].get(t+cn,e,n,r)},xt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=1<=qn)return ee(t,l,c,a,_);if(f&&!_&&2===l.length&&Qt(l[1^h]))return l[1^h];if(f&&_&&1===l.length&&Qt(_))return _;var d=t&&t===this.ownerID,v=f?_?c:c^s:c|s,y=f?_?ae(l,h,_,d):ce(l,h,d):se(l,h,_,d);return d?(this.bitmap=v,this.nodes=y,this):new xt(t,v,y)},Vt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=(0===t?e:e>>>t)&hn,o=this.nodes[i];return o?o.get(t+cn,e,n,r):r},Vt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=i===ln,c=this.nodes,f=c[a];if(s&&!f)return this;var h=Xt(f,t,e+cn,n,r,i,o,u);if(h===f)return this;var l=this.count;if(f){if(!h&&(l--,l=0&&t>>e&hn;if(r>=this.array.length)return new le([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-cn,n),i===u&&o)return this}if(o&&!i)return this;var a=Se(this,t);if(!o)for(var s=0;s>>e&hn;if(r>=this.array.length)return this;var i;if(e>0){var o=this.array[r];if(i=o&&o.removeAfter(t,e-cn,n),i===o&&r===this.array.length-1)return this}var u=Se(this,t);return u.array.splice(r+1),i&&(u.array[r]=i),u};var Yn,Bn={};t(be,Ut),be.of=function(){return this(arguments)},be.prototype.toString=function(){return this.__toString("OrderedMap {","}")},be.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},be.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Te()},be.prototype.set=function(t,e){return Ae(this,t,e)},be.prototype.remove=function(t){return Ae(this,t,ln)},be.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},be.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},be.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},be.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?we(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},be.isOrderedMap=Oe,be.prototype[Sn]=!0,be.prototype[sn]=be.prototype.remove;var Jn;t(De,B),De.of=function(){return this(arguments)},De.prototype.toString=function(){return this.__toString("Stack [","]")},De.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},De.prototype.peek=function(){return this._head&&this._head.value},De.prototype.push=function(){var t=arguments;if(0===arguments.length)return this;for(var e=this.size+arguments.length,n=this._head,r=arguments.length-1;r>=0;r--)n={value:t[r],next:n};return this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):ze(e,n)},De.prototype.pushAll=function(t){if(t=_(t),0===t.size)return this;at(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):ze(e,n)},De.prototype.pop=function(){return this.slice(1)},De.prototype.unshift=function(){return this.push.apply(this,arguments)},De.prototype.unshiftAll=function(t){return this.pushAll(t)},De.prototype.shift=function(){return this.pop.apply(this,arguments)},De.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Re()},De.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return B.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):ze(i,o)},De.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?ze(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},De.prototype.__iterate=function(t,e){var n=this;if(e)return this.reverse().__iterate(t);for(var r=0,i=this._head;i&&t(i.value,r++,n)!==!1;)i=i.next;return r},De.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new E(function(){if(r){var e=r.value;return r=r.next,I(t,n++,e)}return b()})},De.isStack=Ce;var Wn="@@__IMMUTABLE_STACK__@@",Xn=De.prototype;Xn[Wn]=!0,Xn.withMutations=Pn.withMutations,Xn.asMutable=Pn.asMutable,Xn.asImmutable=Pn.asImmutable,Xn.wasAltered=Pn.wasAltered;var Qn;t(Le,J),Le.of=function(){return this(arguments)},Le.fromKeys=function(t){return this(p(t).keySeq())},Le.prototype.toString=function(){return this.__toString("Set {","}")},Le.prototype.has=function(t){return this._map.has(t)},Le.prototype.add=function(t){return je(this,this._map.set(t,!0))},Le.prototype.remove=function(t){return je(this,this._map.remove(t))},Le.prototype.clear=function(){return je(this,this._map.clear())},Le.prototype.union=function(){var t=an.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n1?" by "+this._step:"")+" ]"},Be.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Be.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e=0&&nn?b():I(t,o++,u)})},Be.prototype.equals=function(t){return t instanceof Be?this._start===t._start&&this._end===t._end&&this._step===t._step:Ye(this,t)};var ir;t(Je,R),Je.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Je.prototype.get=function(t,e){return this.has(t)?this._value:e},Je.prototype.includes=function(t){return W(this._value,t)},Je.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Je(this._value,f(e,n)-c(t,n))},Je.prototype.reverse=function(){return this},Je.prototype.indexOf=function(t){return W(this._value,t)?0:-1},Je.prototype.lastIndexOf=function(t){return W(this._value,t)?this.size:-1},Je.prototype.__iterate=function(t,e){for(var n=this,r=0;rthis.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?this.size===1/0||t-1&&t%1===0&&t<=Number.MAX_VALUE}var i=Function.prototype.bind;e.isString=function(t){return"string"==typeof t||"[object String]"===n(t)},e.isArray=Array.isArray||function(t){return"[object Array]"===n(t)},"function"!=typeof/./&&"object"!=typeof Int8Array?e.isFunction=function(t){return"function"==typeof t||!1}:e.isFunction=function(t){return"[object Function]"===toString.call(t)},e.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},e.extend=function(t){var e=arguments,n=arguments.length;if(!t||n<2)return t||{};for(var r=1;r0)){var e=this.reactorState.get("dirtyStores");if(0!==e.size){var n=c.default.Set().withMutations(function(n){n.union(t.observerState.get("any")),e.forEach(function(e){var r=t.observerState.getIn(["stores",e]);r&&n.union(r)})});n.forEach(function(e){var n=t.observerState.getIn(["observersMap",e]);if(n){var r=n.get("getter"),i=n.get("handler"),o=p.evaluate(t.prevReactorState,r),u=p.evaluate(t.reactorState,r);t.prevReactorState=o.reactorState,t.reactorState=u.reactorState;var a=o.result,s=u.result;c.default.is(a,s)||i.call(null,s)}});var r=p.resetDirtyStores(this.reactorState);this.prevReactorState=r,this.reactorState=r}}}},{key:"batchStart",value:function(){this.__batchDepth++}},{key:"batchEnd",value:function(){if(this.__batchDepth--,this.__batchDepth<=0){this.__isDispatching=!0;try{this.__notify()}catch(t){throw this.__isDispatching=!1,t}this.__isDispatching=!1}}}]),t}();e.default=(0,y.toFactory)(g),t.exports=e.default},function(t,e,n){function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n={};return(0,o.each)(e,function(e,r){n[r]=t.evaluate(e)}),n}Object.defineProperty(e,"__esModule",{value:!0});var o=n(4);e.default=function(t){return{getInitialState:function(){return i(t,this.getDataBindings())},componentDidMount:function(){var e=this;this.__unwatchFns=[],(0,o.each)(this.getDataBindings(),function(n,i){var o=t.observe(n,function(t){e.setState(r({},i,t))});e.__unwatchFns.push(o)})},componentWillUnmount:function(){for(var t=this;this.__unwatchFns.length;)t.__unwatchFns.shift()()}}},t.exports=e.default},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){return new L({result:t,reactorState:e})}function o(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.getIn(["stores",n])&&console.warn("Store already defined for id = "+n);var r=e.getInitialState();if(void 0===r&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store getInitialState() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(r))throw new Error("Store getInitialState() must return an immutable value, did you forget to call toImmutable");t.update("stores",function(t){return t.set(n,e)}).update("state",function(t){return t.set(n,r)}).update("dirtyStores",function(t){return t.add(n)}).update("storeStates",function(t){return b(t,[n])})}),I(t)})}function u(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.update("stores",function(t){return t.set(n,e)})})})}function a(t,e,n){if(void 0===e&&f(t,"throwOnUndefinedActionType"))throw new Error("`dispatch` cannot be called with an `undefined` action type.");var r=t.get("state"),i=t.get("dirtyStores"),o=r.withMutations(function(r){A.default.dispatchStart(t,e,n),t.get("stores").forEach(function(o,u){var a=r.get(u),s=void 0;try{s=o.handle(a,e,n)}catch(e){throw A.default.dispatchError(t,e.message),e}if(void 0===s&&f(t,"throwOnUndefinedStoreReturnValue")){var c="Store handler must return a value, did you forget a return statement";throw A.default.dispatchError(t,c),new Error(c)}r.set(u,s),a!==s&&(i=i.add(u))}),A.default.dispatchEnd(t,r,i)}),u=t.set("state",o).set("dirtyStores",i).update("storeStates",function(t){return b(t,i)});return I(u)}function s(t,e){var n=[],r=(0,D.toImmutable)({}).withMutations(function(r){(0,R.each)(e,function(e,i){var o=t.getIn(["stores",i]);if(o){var u=o.deserialize(e);void 0!==u&&(r.set(i,u),n.push(i))}})}),i=w.default.Set(n);return t.update("state",function(t){return t.merge(r)}).update("dirtyStores",function(t){return t.union(i)}).update("storeStates",function(t){return b(t,n)})}function c(t,e,n){var r=e;(0,z.isKeyPath)(e)&&(e=(0,C.fromKeyPath)(e));var i=t.get("nextId"),o=(0,C.getStoreDeps)(e),u=w.default.Map({id:i,storeDeps:o,getterKey:r,getter:e,handler:n}),a=void 0;return a=0===o.size?t.update("any",function(t){return t.add(i)}):t.withMutations(function(t){o.forEach(function(e){var n=["stores",e];t.hasIn(n)||t.setIn(n,w.default.Set()),t.updateIn(["stores",e],function(t){return t.add(i)})})}),a=a.set("nextId",i+1).setIn(["observersMap",i],u),{observerState:a,entry:u}}function f(t,e){var n=t.getIn(["options",e]);if(void 0===n)throw new Error("Invalid option: "+e);return n}function h(t,e,n){var r=t.get("observersMap").filter(function(t){var r=t.get("getterKey"),i=!n||t.get("handler")===n;return!!i&&((0,z.isKeyPath)(e)&&(0,z.isKeyPath)(r)?(0,z.isEqual)(e,r):e===r)});return t.withMutations(function(t){r.forEach(function(e){return l(t,e)})})}function l(t,e){return t.withMutations(function(t){var n=e.get("id"),r=e.get("storeDeps");0===r.size?t.update("any",function(t){return t.remove(n)}):r.forEach(function(e){t.updateIn(["stores",e],function(t){return t?t.remove(n):t})}),t.removeIn(["observersMap",n])})}function p(t){var e=t.get("state");return t.withMutations(function(t){var n=t.get("stores"),r=n.keySeq().toJS();n.forEach(function(n,r){var i=e.get(r),o=n.handleReset(i);if(void 0===o&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store handleReset() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(o))throw new Error("Store reset state must be an immutable value, did you forget to call toImmutable");t.setIn(["state",r],o)}),t.update("storeStates",function(t){return b(t,r)}),v(t)})}function _(t,e){var n=t.get("state");if((0,z.isKeyPath)(e))return i(n.getIn(e),t);if(!(0,C.isGetter)(e))throw new Error("evaluate must be passed a keyPath or Getter");if(g(t,e))return i(E(t,e),t);var r=(0,C.getDeps)(e).map(function(e){return _(t,e).result}),o=(0,C.getComputeFn)(e).apply(null,r);return i(o,m(t,e,o))}function d(t){var e={};return t.get("stores").forEach(function(n,r){var i=t.getIn(["state",r]),o=n.serialize(i);void 0!==o&&(e[r]=o)}),e}function v(t){return t.set("dirtyStores",w.default.Set())}function y(t){return t}function S(t,e){var n=y(e);return t.getIn(["cache",n])}function g(t,e){var n=S(t,e);if(!n)return!1;var r=n.get("storeStates");return 0!==r.size&&r.every(function(e,n){return t.getIn(["storeStates",n])===e})}function m(t,e,n){var r=y(e),i=t.get("dispatchId"),o=(0,C.getStoreDeps)(e),u=(0,D.toImmutable)({}).withMutations(function(e){o.forEach(function(n){var r=t.getIn(["storeStates",n]);e.set(n,r)})});return t.setIn(["cache",r],w.default.Map({value:n,storeStates:u,dispatchId:i}))}function E(t,e){var n=y(e);return t.getIn(["cache",n,"value"])}function I(t){return t.update("dispatchId",function(t){return t+1})}function b(t,e){return t.withMutations(function(t){e.forEach(function(e){var n=t.has(e)?t.get(e)+1:1;t.set(e,n)})})}Object.defineProperty(e,"__esModule",{value:!0}),e.registerStores=o,e.replaceStores=u,e.dispatch=a,e.loadState=s,e.addObserver=c,e.getOption=f,e.removeObserver=h,e.removeObserverByEntry=l,e.reset=p,e.evaluate=_,e.serialize=d,e.resetDirtyStores=v;var O=n(3),w=r(O),T=n(9),A=r(T),D=n(5),C=n(10),z=n(11),R=n(4),L=w.default.Record({result:null,reactorState:null})},function(t,e,n){var r=n(8);e.dispatchStart=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.groupCollapsed("Dispatch: %s",e),console.group("payload"),console.debug(n),console.groupEnd())},e.dispatchError=function(t,e){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.debug("Dispatch error: "+e),console.groupEnd())},e.dispatchEnd=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&((0,r.getOption)(t,"logDirtyStores")&&console.log("Stores updated:",n.toList().toJS()),(0,r.getOption)(t,"logAppState")&&console.debug("Dispatch done, new state: ",e.toJS()),console.groupEnd())}},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t){return(0,l.isArray)(t)&&(0,l.isFunction)(t[t.length-1])}function o(t){return t[t.length-1]}function u(t){return t.slice(0,t.length-1)}function a(t,e){e||(e=h.default.Set());var n=h.default.Set().withMutations(function(e){if(!i(t))throw new Error("getFlattenedDeps must be passed a Getter");u(t).forEach(function(t){if((0,p.isKeyPath)(t))e.add((0,f.List)(t));else{if(!i(t))throw new Error("Invalid getter, each dependency must be a KeyPath or Getter");e.union(a(t))}})});return e.union(n)}function s(t){if(!(0,p.isKeyPath)(t))throw new Error("Cannot create Getter from KeyPath: "+t);return[t,_]}function c(t){if(t.hasOwnProperty("__storeDeps"))return t.__storeDeps;var e=a(t).map(function(t){return t.first()}).filter(function(t){return!!t});return Object.defineProperty(t,"__storeDeps",{enumerable:!1,configurable:!1,writable:!1,value:e}),e}Object.defineProperty(e,"__esModule",{value:!0});var f=n(3),h=r(f),l=n(4),p=n(11),_=function(t){return t};e.default={isGetter:i,getComputeFn:o,getFlattenedDeps:a,getStoreDeps:c,getDeps:u,fromKeyPath:s},t.exports=e.default},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t){return(0,s.isArray)(t)&&!(0,s.isFunction)(t[t.length-1])}function o(t,e){var n=a.default.List(t),r=a.default.List(e);return a.default.is(n,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.isKeyPath=i,e.isEqual=o;var u=n(3),a=r(u),s=n(4)},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=(0,r.Map)({logDispatches:!1,logAppState:!1,logDirtyStores:!1,throwOnUndefinedActionType:!1,throwOnUndefinedStoreReturnValue:!1,throwOnNonImmutableStore:!1,throwOnDispatchInDispatch:!1});e.PROD_OPTIONS=i;var o=(0,r.Map)({logDispatches:!0,logAppState:!0,logDirtyStores:!0,throwOnUndefinedActionType:!0,throwOnUndefinedStoreReturnValue:!0,throwOnNonImmutableStore:!0,throwOnDispatchInDispatch:!0});e.DEBUG_OPTIONS=o;var u=(0,r.Record)({dispatchId:0,state:(0,r.Map)(),stores:(0,r.Map)(),cache:(0,r.Map)(),storeStates:(0,r.Map)(),dirtyStores:(0,r.Set)(),debug:!1,options:i});e.ReactorState=u;var a=(0,r.Record)({any:(0,r.Set)(),stores:(0,r.Map)({}),observersMap:(0,r.Map)({}),nextId:1});e.ObserverState=a}])})}),be=t(Ie),Oe=e(function(t){var e=function(t){var e,n={};if(!(t instanceof Object)||Array.isArray(t))throw new Error("keyMirror(...): Argument must be an object.");for(e in t)t.hasOwnProperty(e)&&(n[e]=e);return n};t.exports=e}),we=t(Oe),Te=we({VALIDATING_AUTH_TOKEN:null,VALID_AUTH_TOKEN:null,INVALID_AUTH_TOKEN:null,LOG_OUT:null}),Ae=be.Store,De=be.toImmutable,Ce=new Ae({getInitialState:function(){return De({isValidating:!1,authToken:!1,host:null,isInvalid:!1,errorMessage:""})},initialize:function(){this.on(Te.VALIDATING_AUTH_TOKEN,n),this.on(Te.VALID_AUTH_TOKEN,r),this.on(Te.INVALID_AUTH_TOKEN,i)}}),ze=be.Store,Re=be.toImmutable,Le=new ze({getInitialState:function(){return Re({authToken:null,host:""})},initialize:function(){this.on(Te.VALID_AUTH_TOKEN,o),this.on(Te.LOG_OUT,u)}}),Me=be.Store,je=new Me({getInitialState:function(){return!0},initialize:function(){this.on(Te.VALID_AUTH_TOKEN,a)}}),Ne=we({STREAM_START:null,STREAM_STOP:null,STREAM_ERROR:null}),ke="object"==typeof window&&"EventSource"in window,Ue=be.Store,He=be.toImmutable,Pe=new Ue({getInitialState:function(){return He({isSupported:ke,isStreaming:!1,useStreaming:!0,hasError:!1})},initialize:function(){this.on(Ne.STREAM_START,s),this.on(Ne.STREAM_STOP,c),this.on(Ne.STREAM_ERROR,f),this.on(Ne.LOG_OUT,h)}}),xe=we({API_FETCH_ALL_START:null,API_FETCH_ALL_SUCCESS:null,API_FETCH_ALL_FAIL:null,SYNC_SCHEDULED:null,SYNC_SCHEDULE_CANCELLED:null}),Ve=be.Store,qe=new Ve({getInitialState:function(){return!0},initialize:function(){this.on(xe.API_FETCH_ALL_START,function(){return!0}),this.on(xe.API_FETCH_ALL_SUCCESS,function(){return!1}),this.on(xe.API_FETCH_ALL_FAIL,function(){return!1}),this.on(xe.LOG_OUT,function(){return!1})}}),Fe=be.Store,Ge=new Fe({getInitialState:function(){return!1},initialize:function(){this.on(xe.SYNC_SCHEDULED,function(){return!0}),this.on(xe.SYNC_SCHEDULE_CANCELLED,function(){return!1}),this.on(xe.LOG_OUT,function(){return!1})}}),Ke=we({API_FETCH_SUCCESS:null,API_FETCH_START:null,API_FETCH_FAIL:null,API_SAVE_SUCCESS:null,API_SAVE_START:null,API_SAVE_FAIL:null,API_DELETE_SUCCESS:null,API_DELETE_START:null,API_DELETE_FAIL:null,LOG_OUT:null}),Ye=be.Store,Be=be.toImmutable,Je=new Ye({getInitialState:function(){return Be({})},initialize:function(){var t=this;this.on(Ke.API_FETCH_SUCCESS,l),this.on(Ke.API_SAVE_SUCCESS,l),this.on(Ke.API_DELETE_SUCCESS,p),this.on(Ke.LOG_OUT,function(){return t.getInitialState()})}}),We=e(function(t){function e(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function n(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}var r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=n()?Object.assign:function(t,n){for(var o,u,a=arguments,s=e(t),c=1;c199&&u.status<300?t(e):n(e)},u.onerror=function(){return n({})},r?(u.setRequestHeader("Content-Type","application/json;charset=UTF-8"),u.send(JSON.stringify(r))):u.send()})}function A(t,e){var n=e.message;return t.set(t.size,n)}function D(){return Dn.getInitialState()}function C(t,e){t.dispatch(wn.NOTIFICATION_CREATED,{message:e})}function z(t){t.registerStores({notifications:Dn})}function R(t,e){if("lock"===t)return!0;if("garage_door"===t)return!0;var n=e.get(t);return!!n&&n.services.has("turn_on")}function L(t,e){return!!t&&("group"===t.domain?"on"===t.state||"off"===t.state:R(t.domain,e))}function M(t,e){return[er(t),function(t){return!!t&&t.services.has(e)}]}function j(t){return[bn.byId(t),tr,L]}function N(t,e,n){function r(){var c=(new Date).getTime()-a;c0?i=setTimeout(r,e-c):(i=null,n||(s=t.apply(u,o),i||(u=o=null)))}var i,o,u,a,s;null==e&&(e=100);var c=function(){u=this,o=arguments,a=(new Date).getTime();var c=n&&!i;return i||(i=setTimeout(r,e)),c&&(s=t.apply(u,o),u=o=null),s};return c.clear=function(){i&&(clearTimeout(i),i=null)},c}function k(t,e){var n=e.component;return t.push(n)}function U(t,e){var n=e.components;return pr(n)}function P(){return _r.getInitialState()}function H(t,e){var n=e.latitude,r=e.longitude,i=e.location_name,o=e.temperature_unit,u=e.time_zone,a=e.version;return vr({latitude:n,longitude:r,location_name:i,temperature_unit:o,time_zone:u,serverVersion:a})}function x(){return yr.getInitialState()}function V(t,e){t.dispatch(hr.SERVER_CONFIG_LOADED,e)}function q(t){fn(t,"GET","config").then(function(e){return V(t,e)})}function F(t,e){t.dispatch(hr.COMPONENT_LOADED,{component:e})}function G(t){return[["serverComponent"],function(e){return e.contains(t)}]}function K(t){t.registerStores({serverComponent:_r,serverConfig:yr})}function Y(t,e){var n=e.pane;return n}function B(){return Dr.getInitialState()}function J(t,e){var n=e.panels;return zr(n)}function W(){return Rr.getInitialState()}function X(t,e){var n=e.show;return!!n}function Q(){return Mr.getInitialState()}function Z(t,e){t.dispatch(Tr.SHOW_SIDEBAR,{show:e})}function $(t,e){t.dispatch(Tr.NAVIGATE,{pane:e})}function tt(t,e){t.dispatch(Tr.PANELS_LOADED,{panels:e})}function et(t,e){var n=e.entityId;return n}function nt(){return qr.getInitialState()}function rt(t,e){t.dispatch(xr.SELECT_ENTITY,{entityId:e})}function it(t){t.dispatch(xr.SELECT_ENTITY,{entityId:null})}function ot(t){return!t||(new Date).getTime()-t>6e4}function ut(t,e){var n=e.date;return n.toISOString()}function at(){return Yr.getInitialState()}function st(t,e){var n=e.date,r=e.stateHistory;return 0===r.length?t.set(n,Jr({})):t.withMutations(function(t){r.forEach(function(e){return t.setIn([n,e[0].entity_id],Jr(e.map(dn.fromJSON)))})})}function ct(){return Wr.getInitialState()}function ft(t,e){var n=e.stateHistory;return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,$r(e.map(dn.fromJSON)))})})}function ht(){return ti.getInitialState()}function lt(t,e){var n=e.stateHistory,r=(new Date).getTime();return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,r)}),history.length>1&&t.set(ri,r)})}function pt(){return ii.getInitialState()}function _t(t,e){t.dispatch(Gr.ENTITY_HISTORY_DATE_SELECTED,{date:e})}function dt(t,e){void 0===e&&(e=null),t.dispatch(Gr.RECENT_ENTITY_HISTORY_FETCH_START,{});var n="history/period";return null!==e&&(n+="?filter_entity_id="+e),fn(t,"GET",n).then(function(e){return t.dispatch(Gr.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,{stateHistory:e})},function(){return t.dispatch(Gr.RECENT_ENTITY_HISTORY_FETCH_ERROR,{})})}function vt(t,e){return t.dispatch(Gr.ENTITY_HISTORY_FETCH_START,{date:e}),fn(t,"GET","history/period/"+e).then(function(n){return t.dispatch(Gr.ENTITY_HISTORY_FETCH_SUCCESS,{date:e,stateHistory:n})},function(){return t.dispatch(Gr.ENTITY_HISTORY_FETCH_ERROR,{})})}function yt(t){var e=t.evaluate(ai);return vt(t,e)}function St(t){t.registerStores({currentEntityHistoryDate:Yr,entityHistory:Wr,isLoadingEntityHistory:Qr,recentEntityHistory:ti,recentEntityHistoryUpdated:ii})}function gt(t){t.registerStores({moreInfoEntityId:qr})}function mt(t,e){var n=e.model,r=e.result,i=e.params;if(null===t||"entity"!==n.entity||!i.replace)return t;for(var o=0;oru}function ae(t){t.registerStores({currentLogbookDate:Fo,isLoadingLogbookEntries:Ko,logbookEntries:Qo,logbookEntriesUpdated:tu})}function se(t){return t.set("active",!0)}function ce(t){return t.set("active",!1)}function fe(){return du.getInitialState()}function he(t){return navigator.serviceWorker.getRegistration().then(function(t){if(!t)throw new Error("No service worker registered.");return t.pushManager.subscribe({userVisibleOnly:!0})}).then(function(e){var n;return n=navigator.userAgent.toLowerCase().indexOf("firefox")>-1?"firefox":"chrome",fn(t,"POST","notify.html5",{subscription:e,browser:n}).then(function(){return t.dispatch(lu.PUSH_NOTIFICATIONS_SUBSCRIBE,{})}).then(function(){return!0})}).catch(function(e){var n;return n=e.message&&e.message.indexOf("gcm_sender_id")!==-1?"Please setup the notify.html5 platform.":"Notification registration failed.",console.error(e),Mn.createNotification(t,n),!1})}function le(t){return navigator.serviceWorker.getRegistration().then(function(t){if(!t)throw new Error("No service worker registered");return t.pushManager.subscribe({userVisibleOnly:!0})}).then(function(e){return fn(t,"DELETE","notify.html5",{subscription:e}).then(function(){return e.unsubscribe()}).then(function(){return t.dispatch(lu.PUSH_NOTIFICATIONS_UNSUBSCRIBE,{})}).then(function(){return!0})}).catch(function(e){var n="Failed unsubscribing for push notifications.";return console.error(e),Mn.createNotification(t,n),!1})}function pe(t){t.registerStores({pushNotifications:du})}function _e(t,e){return fn(t,"POST","template",{template:e})}function de(t){return t.set("isListening",!0)}function ve(t,e){var n=e.interimTranscript,r=e.finalTranscript;return t.withMutations(function(t){return t.set("isListening",!0).set("isTransmitting",!1).set("interimTranscript",n).set("finalTranscript",r)})}function ye(t,e){var n=e.finalTranscript;return t.withMutations(function(t){return t.set("isListening",!1).set("isTransmitting",!0).set("interimTranscript","").set("finalTranscript",n)})}function Se(){return Ru.getInitialState()}function ge(){return Ru.getInitialState()}function me(){return Ru.getInitialState()}function Ee(t){return Lu[t.hassId]}function Ie(t){var e=Ee(t);if(e){var n=e.finalTranscript||e.interimTranscript;t.dispatch(Du.VOICE_TRANSMITTING,{finalTranscript:n}),ir.callService(t,"conversation","process",{text:n}).then(function(){t.dispatch(Du.VOICE_DONE)},function(){t.dispatch(Du.VOICE_ERROR)})}}function be(t){var e=Ee(t);e&&(e.recognition.stop(),Lu[t.hassId]=!1)}function Oe(t){Ie(t),be(t)}function we(t){var e=Oe.bind(null,t);e();var n=new webkitSpeechRecognition;Lu[t.hassId]={recognition:n,interimTranscript:"",finalTranscript:""},n.interimResults=!0,n.onstart=function(){return t.dispatch(Du.VOICE_START)},n.onerror=function(){return t.dispatch(Du.VOICE_ERROR)},n.onend=e,n.onresult=function(e){var n=Ee(t);if(n){for(var r="",i="",o=e.resultIndex;o=n)}function c(t,e){return h(t,e,0)}function f(t,e){return h(t,e,e)}function h(t,e,n){return void 0===t?n:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function l(t){return v(t)?t:C(t)}function p(t){return y(t)?t:z(t)}function _(t){return S(t)?t:R(t)}function d(t){return v(t)&&!g(t)?t:L(t)}function v(t){return!(!t||!t[dn])}function y(t){return!(!t||!t[vn])}function S(t){return!(!t||!t[yn])}function g(t){return y(t)||S(t)}function m(t){return!(!t||!t[Sn])}function E(t){this.next=t}function I(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function b(){return{value:void 0,done:!0}}function O(t){return!!A(t)}function w(t){return t&&"function"==typeof t.next}function T(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(In&&t[In]||t[bn]);if("function"==typeof e)return e}function D(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?P():v(t)?t.toSeq():V(t)}function z(t){return null===t||void 0===t?P().toKeyedSeq():v(t)?y(t)?t.toSeq():t.fromEntrySeq():H(t)}function R(t){return null===t||void 0===t?P():v(t)?y(t)?t.entrySeq():t.toIndexedSeq():x(t)}function L(t){return(null===t||void 0===t?P():v(t)?y(t)?t.entrySeq():t:x(t)).toSetSeq()}function M(t){this._array=t,this.size=t.length}function j(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function N(t){this._iterable=t,this.size=t.length||t.size}function k(t){this._iterator=t,this._iteratorCache=[]}function U(t){return!(!t||!t[wn])}function P(){return Tn||(Tn=new M([]))}function H(t){var e=Array.isArray(t)?new M(t).fromEntrySeq():w(t)?new k(t).fromEntrySeq():O(t)?new N(t).fromEntrySeq():"object"==typeof t?new j(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function x(t){var e=q(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function V(t){var e=q(t)||"object"==typeof t&&new j(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function q(t){return D(t)?new M(t):w(t)?new k(t):O(t)?new N(t):void 0}function F(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;u<=o;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function G(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new E(function(){var t=i[n?o-u:u];return u++>o?b():I(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function K(){throw TypeError("Abstract")}function Y(){}function B(){}function J(){}function W(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function X(t,e){return e?Q(e,t,"",{"":t}):Z(t)}function Q(t,e,n,r){return Array.isArray(e)?t.call(r,n,R(e).map(function(n,r){return Q(t,n,r,e)})):$(e)?t.call(r,n,z(e).map(function(n,r){return Q(t,n,r,e)})):e}function Z(t){return Array.isArray(t)?R(t).map(Z).toList():$(t)?z(t).map(Z).toMap():t}function $(t){return t&&(t.constructor===Object||void 0===t.constructor)}function tt(t){return t>>>1&1073741824|3221225471&t}function et(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return tt(n)}return"string"===e?t.length>jn?nt(t):rt(t):"function"==typeof t.hashCode?t.hashCode():it(t)}function nt(t){var e=Un[t];return void 0===e&&(e=rt(t),kn===Nn&&(kn=0,Un={}),kn++,Un[t]=e),e}function rt(t){for(var e=0,n=0;n0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ut(t,e){if(!t)throw new Error(e)}function at(t){ut(t!==1/0,"Cannot perform this action with an infinite size.")}function st(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ct(t){this._iter=t,this.size=t.size}function ft(t){this._iter=t,this.size=t.size}function ht(t){this._iter=t,this.size=t.size}function lt(t){var e=Mt(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=jt,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===En){var r=t.__iterator(e,n);return new E(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===mn?gn:mn,n)},e}function pt(t,e,n){var r=Mt(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,ln);return o===ln?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(En,i);return new E(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return I(r,a,e.call(n,u[1],a,t),i)})},r}function _t(t,e){var n=Mt(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=lt(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=jt,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function dt(t,e,n,r){var i=Mt(t);return r&&(i.has=function(r){var i=t.get(r,ln);return i!==ln&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,ln);return o!==ln&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){if(e.call(n,t,o,s))return a++,i(t,r?o:a-1,u)},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(En,o),a=0;return new E(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return I(i,r?c:a++,f,o)}})},i}function vt(t,e,n){var r=Ut().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function yt(t,e,n){var r=y(t),i=(m(t)?be():Ut()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=Lt(t);return i.map(function(e){return Ct(t,o(e))})}function St(t,e,n,r){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==n&&(n=0|n),s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return St(t.toSeq().cacheResult(),e,n,r);var h,l=a-o;l===l&&(h=l<0?0:l);var p=Mt(t);return p.size=0===h?h:t.size&&h||void 0,!r&&U(t)&&h>=0&&(p.get=function(e,n){return e=u(this,e),e>=0&&eh)return b();var t=i.next();return r||e===mn?t:e===gn?I(e,a-1,void 0,t):I(e,a-1,t.value[1],t)})},p}function gt(t,e,n){var r=Mt(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(En,i),a=!0;return new E(function(){if(!a)return b();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===En?t:I(r,s,c,t):(a=!1,b())})},r}function mt(t,e,n,r){var i=Mt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){if(!a||!(a=e.call(n,t,o,c)))return s++,i(t,r?o:s-1,u)}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(En,o),s=!0,c=0;return new E(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===mn?t:i===gn?I(i,c++,void 0,t):I(i,c++,t.value[1],t);var h=t.value;o=h[0],f=h[1],s&&(s=e.call(n,f,o,u))}while(s);return i===En?t:I(i,o,f,t)})},i}function Et(t,e){var n=y(t),r=[t].concat(e).map(function(t){return v(t)?n&&(t=p(t)):t=n?H(t):x(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&y(i)||S(t)&&S(i))return i}var o=new M(r);return n?o=o.toKeyedSeq():S(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function It(t,e,n){var r=Mt(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||s0}function Dt(t,e,n){var r=Mt(t);return r.size=new M(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this,i=this.__iterator(mn,e),o=0;!(n=i.next()).done&&t(n.value,o++,r)!==!1;);return o},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=l(t),T(r?t.reverse():t)}),o=0,u=!1;return new E(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?b():I(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ct(t,e){return U(t)?e:t.constructor(e)}function zt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Rt(t){return at(t.size),o(t)}function Lt(t){ +return y(t)?p:S(t)?_:d}function Mt(t){return Object.create((y(t)?z:S(t)?R:L).prototype)}function jt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function Nt(t,e){return t>e?1:t>>n)&hn,a=(0===n?r:r>>>n)&hn,s=u===a?[Zt(t,e,n+cn,r,i)]:(o=new Ft(e,r,i),u>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new Vt(t,o+1,u)}function ne(t,e,n){for(var r=[],i=0;i>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function ae(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function se(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;a0&&ro?0:o-n,c=u-n;return c>fn&&(c=fn),function(){if(i===c)return Bn;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>fn&&(f=fn),function(){for(;;){if(a){var t=a();if(t!==Bn)return t;a=null}if(c===f)return Bn;var o=e?--f:c++;a=n(s&&s[o],r-cn,i+(o<=t.size||n<0)return t.withMutations(function(t){n<0?me(t,n).set(0,r):me(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(_n);return n>=Ie(t._capacity)?i=ye(i,t.__ownerID,0,n,r,a):o=ye(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):_e(t._origin,t._capacity,t._level,o,i):t}function ye(t,e,r,i,o,u){var a=i>>>r&hn,s=t&&a0){var f=t&&t.array[a],h=ye(f,e,r-cn,i,o,u);return h===f?t:(c=Se(t,e),c.array[a]=h,c)}return s&&t.array[a]===o?t:(n(u),c=Se(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function Se(t,e){return e&&t&&e===t.ownerID?t:new le(t?t.array.slice():[],e)}function ge(t,e){if(e>=Ie(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&hn],r-=cn;return n}}function me(t,e,n){void 0!==e&&(e=0|e),void 0!==n&&(n=0|n);var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:n<0?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,h=0;a+h<0;)f=new le(f&&f.array.length?[void 0,f]:[],i),c+=cn,h+=1<=1<l?new le([],i):_;if(_&&p>l&&acn;y-=cn){var S=l>>>y&hn;v=v.array[S]=Se(v.array[S],i)}v.array[l>>>cn&hn]=_}if(s=p)a-=p,s-=p,c=cn,f=null,d=d&&d.removeBefore(i,0,a);else if(a>o||p>>c&hn;if(g!==p>>>c&hn)break;g&&(h+=(1<o&&(f=f.removeBefore(i,c,a-h)),f&&pi&&(i=a.size),v(u)||(a=a.map(function(t){return X(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),ie(t,e,r)}function Ie(t){return t>>cn<=fn&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):we(r,i)}function De(t){return null===t||void 0===t?Re():Ce(t)?t:Re().unshiftAll(t)}function Ce(t){return!(!t||!t[Wn])}function ze(t,e,n,r){var i=Object.create(Xn);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Re(){return Qn||(Qn=ze(0))}function Le(t){return null===t||void 0===t?ke():Me(t)&&!m(t)?t:ke().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function Me(t){return!(!t||!t[Zn])}function je(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function Ne(t,e){var n=Object.create($n);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function ke(){return tr||(tr=Ne(Jt()))}function Ue(t){return null===t||void 0===t?xe():Pe(t)?t:xe().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function Pe(t){return Me(t)&&m(t)}function He(t,e){var n=Object.create(er);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function xe(){return nr||(nr=He(Te()))}function Ve(t,e){var n,r=function(o){if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var u=Object.keys(t);Ge(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=Ut(o)},i=r.prototype=Object.create(rr);return i.constructor=r,r}function qe(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Fe(t){return t._name||t.constructor.name||"Record"}function Ge(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(t){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){ut(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Ye(t,e){if(t===e)return!0;if(!v(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||y(t)!==y(e)||S(t)!==S(e)||m(t)!==m(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!g(t);if(m(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&W(i[1],t)&&(n||W(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){if(n?!t.has(e):i?!W(e,t.get(r,ln)):!W(t.get(r,ln),e))return u=!1,!1});return u&&t.size===a}function Be(t,e,n){if(!(this instanceof Be))return new Be(t,e,n);if(ut(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),ee?-1:0}function rn(t){if(t.size===1/0)return 0;var e=m(t),n=y(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+un(et(t),et(e))|0}:function(t,e){r=r+un(et(t),et(e))|0}:e?function(t){r=31*r+et(t)|0}:function(t){r=r+et(t)|0});return on(i,r)}function on(t,e){return e=Dn(e,3432918353),e=Dn(e<<15|e>>>-15,461845907),e=Dn(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Dn(e^e>>>16,2246822507),e=Dn(e^e>>>13,3266489909),e=tt(e^e>>>16)}function un(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var an=Array.prototype.slice,sn="delete",cn=5,fn=1<r?b():I(t,i,n[e?r-i++:i++])})},t(j,z),j.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},j.prototype.has=function(t){return this._object.hasOwnProperty(t)},j.prototype.__iterate=function(t,e){for(var n=this,r=this._object,i=this._keys,o=i.length-1,u=0;u<=o;u++){var a=i[e?o-u:u];if(t(r[a],a,n)===!1)return u+1}return u},j.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new E(function(){var u=r[e?i-o:o];return o++>i?b():I(t,u,n[u])})},j.prototype[Sn]=!0,t(N,R),N.prototype.__iterateUncached=function(t,e){var n=this;if(e)return this.cacheResult().__iterate(t,e);var r=this._iterable,i=T(r),o=0;if(w(i))for(var u;!(u=i.next()).done&&t(u.value,o++,n)!==!1;);return o},N.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=T(n);if(!w(r))return new E(b);var i=0;return new E(function(){var e=r.next();return e.done?e:I(t,i++,e.value)})},t(k,R),k.prototype.__iterateUncached=function(t,e){var n=this;if(e)return this.cacheResult().__iterate(t,e);for(var r=this._iterator,i=this._iteratorCache,o=0;o=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return I(t,i,r[i++])})};var Tn;t(K,l),t(Y,K),t(B,K),t(J,K),K.Keyed=Y,K.Indexed=B,K.Set=J;var An,Dn="function"==typeof Math.imul&&Math.imul(4294967295,2)===-2?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Cn=Object.isExtensible,zn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Rn="function"==typeof WeakMap;Rn&&(An=new WeakMap);var Ln=0,Mn="__immutablehash__";"function"==typeof Symbol&&(Mn=Symbol(Mn));var jn=16,Nn=255,kn=0,Un={};t(st,z),st.prototype.get=function(t,e){return this._iter.get(t,e)},st.prototype.has=function(t){return this._iter.has(t)},st.prototype.valueSeq=function(){return this._iter.valueSeq()},st.prototype.reverse=function(){var t=this,e=_t(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},st.prototype.map=function(t,e){var n=this,r=pt(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},st.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?Rt(this):0,function(i){return t(i,e?--n:n++,r)}),e)},st.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(mn,e),r=e?Rt(this):0;return new E(function(){var i=n.next();return i.done?i:I(t,e?--r:r++,i.value,i)})},st.prototype[Sn]=!0,t(ct,R),ct.prototype.includes=function(t){return this._iter.includes(t)},ct.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},ct.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e),r=0;return new E(function(){var e=n.next();return e.done?e:I(t,r++,e.value,e)})},t(ft,L),ft.prototype.has=function(t){return this._iter.includes(t)},ft.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},ft.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){var e=n.next();return e.done?e:I(t,e.value,e.value,e)})},t(ht,z),ht.prototype.entrySeq=function(){return this._iter.toSeq()},ht.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){if(e){zt(e);var r=v(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],n)}},e)},ht.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r){zt(r);var i=v(r);return I(t,i?r.get(0):r[0],i?r.get(1):r[1],e)}}})},ct.prototype.cacheResult=st.prototype.cacheResult=ft.prototype.cacheResult=ht.prototype.cacheResult=jt,t(Ut,Y),Ut.prototype.toString=function(){return this.__toString("Map {","}")},Ut.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Ut.prototype.set=function(t,e){return Wt(this,t,e)},Ut.prototype.setIn=function(t,e){return this.updateIn(t,ln,function(){return e})},Ut.prototype.remove=function(t){return Wt(this,t,ln)},Ut.prototype.deleteIn=function(t){return this.updateIn(t,function(){return ln})},Ut.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},Ut.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=oe(this,kt(t),e,n);return r===ln?void 0:r},Ut.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Jt()},Ut.prototype.merge=function(){return ne(this,void 0,arguments)},Ut.prototype.mergeWith=function(t){var e=an.call(arguments,1);return ne(this,t,e)},Ut.prototype.mergeIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},Ut.prototype.mergeDeep=function(){return ne(this,re(void 0),arguments)},Ut.prototype.mergeDeepWith=function(t){var e=an.call(arguments,1);return ne(this,re(t),e)},Ut.prototype.mergeDeepIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},Ut.prototype.sort=function(t){return be(wt(this,t))},Ut.prototype.sortBy=function(t,e){return be(wt(this,e,t))},Ut.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Ut.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Ut.prototype.asImmutable=function(){return this.__ensureOwner()},Ut.prototype.wasAltered=function(){return this.__altered},Ut.prototype.__iterator=function(t,e){return new Gt(this,t,e)},Ut.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},Ut.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Bt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Ut.isMap=Pt;var Pn="@@__IMMUTABLE_MAP__@@",Hn=Ut.prototype;Hn[Pn]=!0,Hn[sn]=Hn.remove,Hn.removeIn=Hn.deleteIn,Ht.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;o=Vn)return $t(t,f,o,u);var _=t&&t===this.ownerID,d=_?f:i(f);return p?c?h===l-1?d.pop():d[h]=d.pop():d[h]=[o,u]:d.push([o,u]),_?(this.entries=d,this):new Ht(t,d)}},xt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=1<<((0===t?e:e>>>t)&hn),o=this.bitmap;return 0===(o&i)?r:this.nodes[ue(o&i-1)].get(t+cn,e,n,r)},xt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=1<=qn)return ee(t,l,c,a,_);if(f&&!_&&2===l.length&&Qt(l[1^h]))return l[1^h];if(f&&_&&1===l.length&&Qt(_))return _;var d=t&&t===this.ownerID,v=f?_?c:c^s:c|s,y=f?_?ae(l,h,_,d):ce(l,h,d):se(l,h,_,d);return d?(this.bitmap=v,this.nodes=y,this):new xt(t,v,y)},Vt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=(0===t?e:e>>>t)&hn,o=this.nodes[i];return o?o.get(t+cn,e,n,r):r},Vt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=i===ln,c=this.nodes,f=c[a];if(s&&!f)return this;var h=Xt(f,t,e+cn,n,r,i,o,u);if(h===f)return this;var l=this.count;if(f){if(!h&&(l--,l=0&&t>>e&hn;if(r>=this.array.length)return new le([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-cn,n),i===u&&o)return this}if(o&&!i)return this;var a=Se(this,t);if(!o)for(var s=0;s>>e&hn;if(r>=this.array.length)return this;var i;if(e>0){var o=this.array[r];if(i=o&&o.removeAfter(t,e-cn,n),i===o&&r===this.array.length-1)return this}var u=Se(this,t);return u.array.splice(r+1),i&&(u.array[r]=i),u};var Yn,Bn={};t(be,Ut),be.of=function(){return this(arguments)},be.prototype.toString=function(){return this.__toString("OrderedMap {","}")},be.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},be.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Te()},be.prototype.set=function(t,e){return Ae(this,t,e)},be.prototype.remove=function(t){return Ae(this,t,ln)},be.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},be.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},be.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},be.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?we(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},be.isOrderedMap=Oe,be.prototype[Sn]=!0,be.prototype[sn]=be.prototype.remove;var Jn;t(De,B),De.of=function(){return this(arguments)},De.prototype.toString=function(){return this.__toString("Stack [","]")},De.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},De.prototype.peek=function(){return this._head&&this._head.value},De.prototype.push=function(){var t=arguments;if(0===arguments.length)return this;for(var e=this.size+arguments.length,n=this._head,r=arguments.length-1;r>=0;r--)n={value:t[r],next:n};return this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):ze(e,n)},De.prototype.pushAll=function(t){if(t=_(t),0===t.size)return this;at(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):ze(e,n)},De.prototype.pop=function(){return this.slice(1)},De.prototype.unshift=function(){return this.push.apply(this,arguments)},De.prototype.unshiftAll=function(t){return this.pushAll(t)},De.prototype.shift=function(){return this.pop.apply(this,arguments)},De.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Re()},De.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return B.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):ze(i,o)},De.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?ze(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},De.prototype.__iterate=function(t,e){var n=this;if(e)return this.reverse().__iterate(t);for(var r=0,i=this._head;i&&t(i.value,r++,n)!==!1;)i=i.next;return r},De.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new E(function(){if(r){var e=r.value;return r=r.next,I(t,n++,e)}return b()})},De.isStack=Ce;var Wn="@@__IMMUTABLE_STACK__@@",Xn=De.prototype;Xn[Wn]=!0,Xn.withMutations=Hn.withMutations,Xn.asMutable=Hn.asMutable,Xn.asImmutable=Hn.asImmutable,Xn.wasAltered=Hn.wasAltered;var Qn;t(Le,J),Le.of=function(){return this(arguments)},Le.fromKeys=function(t){return this(p(t).keySeq())},Le.prototype.toString=function(){return this.__toString("Set {","}")},Le.prototype.has=function(t){return this._map.has(t)},Le.prototype.add=function(t){return je(this,this._map.set(t,!0))},Le.prototype.remove=function(t){return je(this,this._map.remove(t))},Le.prototype.clear=function(){return je(this,this._map.clear())},Le.prototype.union=function(){var t=an.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n1?" by "+this._step:"")+" ]"},Be.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Be.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e=0&&nn?b():I(t,o++,u)})},Be.prototype.equals=function(t){return t instanceof Be?this._start===t._start&&this._end===t._end&&this._step===t._step:Ye(this,t)};var ir;t(Je,R),Je.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Je.prototype.get=function(t,e){return this.has(t)?this._value:e},Je.prototype.includes=function(t){return W(this._value,t)},Je.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Je(this._value,f(e,n)-c(t,n))},Je.prototype.reverse=function(){return this},Je.prototype.indexOf=function(t){return W(this._value,t)?0:-1},Je.prototype.lastIndexOf=function(t){return W(this._value,t)?this.size:-1},Je.prototype.__iterate=function(t,e){for(var n=this,r=0;rthis.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?this.size===1/0||t-1&&t%1===0&&t<=Number.MAX_VALUE}var i=Function.prototype.bind;e.isString=function(t){return"string"==typeof t||"[object String]"===n(t)},e.isArray=Array.isArray||function(t){return"[object Array]"===n(t)},"function"!=typeof/./&&"object"!=typeof Int8Array?e.isFunction=function(t){return"function"==typeof t||!1}:e.isFunction=function(t){return"[object Function]"===toString.call(t)},e.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},e.extend=function(t){var e=arguments,n=arguments.length;if(!t||n<2)return t||{};for(var r=1;r0)){var e=this.reactorState.get("dirtyStores");if(0!==e.size){var n=c.default.Set().withMutations(function(n){n.union(t.observerState.get("any")),e.forEach(function(e){var r=t.observerState.getIn(["stores",e]);r&&n.union(r)})});n.forEach(function(e){var n=t.observerState.getIn(["observersMap",e]);if(n){var r=n.get("getter"),i=n.get("handler"),o=p.evaluate(t.prevReactorState,r),u=p.evaluate(t.reactorState,r);t.prevReactorState=o.reactorState,t.reactorState=u.reactorState;var a=o.result,s=u.result;c.default.is(a,s)||i.call(null,s)}});var r=p.resetDirtyStores(this.reactorState);this.prevReactorState=r,this.reactorState=r}}}},{key:"batchStart",value:function(){this.__batchDepth++}},{key:"batchEnd",value:function(){if(this.__batchDepth--,this.__batchDepth<=0){this.__isDispatching=!0;try{this.__notify()}catch(t){throw this.__isDispatching=!1,t}this.__isDispatching=!1}}}]),t}();e.default=(0,y.toFactory)(g),t.exports=e.default},function(t,e,n){function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n={};return(0,o.each)(e,function(e,r){n[r]=t.evaluate(e)}),n}Object.defineProperty(e,"__esModule",{value:!0});var o=n(4);e.default=function(t){return{getInitialState:function(){return i(t,this.getDataBindings())},componentDidMount:function(){var e=this;this.__unwatchFns=[],(0,o.each)(this.getDataBindings(),function(n,i){var o=t.observe(n,function(t){e.setState(r({},i,t))});e.__unwatchFns.push(o)})},componentWillUnmount:function(){for(var t=this;this.__unwatchFns.length;)t.__unwatchFns.shift()()}}},t.exports=e.default},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){return new L({result:t,reactorState:e})}function o(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.getIn(["stores",n])&&console.warn("Store already defined for id = "+n);var r=e.getInitialState();if(void 0===r&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store getInitialState() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(r))throw new Error("Store getInitialState() must return an immutable value, did you forget to call toImmutable");t.update("stores",function(t){return t.set(n,e)}).update("state",function(t){return t.set(n,r)}).update("dirtyStores",function(t){return t.add(n)}).update("storeStates",function(t){return b(t,[n])})}),I(t)})}function u(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.update("stores",function(t){return t.set(n,e)})})})}function a(t,e,n){if(void 0===e&&f(t,"throwOnUndefinedActionType"))throw new Error("`dispatch` cannot be called with an `undefined` action type.");var r=t.get("state"),i=t.get("dirtyStores"),o=r.withMutations(function(r){A.default.dispatchStart(t,e,n),t.get("stores").forEach(function(o,u){var a=r.get(u),s=void 0;try{s=o.handle(a,e,n)}catch(e){throw A.default.dispatchError(t,e.message),e}if(void 0===s&&f(t,"throwOnUndefinedStoreReturnValue")){var c="Store handler must return a value, did you forget a return statement";throw A.default.dispatchError(t,c),new Error(c)}r.set(u,s),a!==s&&(i=i.add(u))}),A.default.dispatchEnd(t,r,i)}),u=t.set("state",o).set("dirtyStores",i).update("storeStates",function(t){return b(t,i)});return I(u)}function s(t,e){var n=[],r=(0,D.toImmutable)({}).withMutations(function(r){(0,R.each)(e,function(e,i){var o=t.getIn(["stores",i]);if(o){var u=o.deserialize(e);void 0!==u&&(r.set(i,u),n.push(i))}})}),i=w.default.Set(n);return t.update("state",function(t){return t.merge(r)}).update("dirtyStores",function(t){return t.union(i)}).update("storeStates",function(t){return b(t,n)})}function c(t,e,n){var r=e;(0,z.isKeyPath)(e)&&(e=(0,C.fromKeyPath)(e));var i=t.get("nextId"),o=(0,C.getStoreDeps)(e),u=w.default.Map({id:i,storeDeps:o,getterKey:r,getter:e,handler:n}),a=void 0;return a=0===o.size?t.update("any",function(t){return t.add(i)}):t.withMutations(function(t){o.forEach(function(e){var n=["stores",e];t.hasIn(n)||t.setIn(n,w.default.Set()),t.updateIn(["stores",e],function(t){return t.add(i)})})}),a=a.set("nextId",i+1).setIn(["observersMap",i],u),{observerState:a,entry:u}}function f(t,e){var n=t.getIn(["options",e]);if(void 0===n)throw new Error("Invalid option: "+e);return n}function h(t,e,n){var r=t.get("observersMap").filter(function(t){var r=t.get("getterKey"),i=!n||t.get("handler")===n;return!!i&&((0,z.isKeyPath)(e)&&(0,z.isKeyPath)(r)?(0,z.isEqual)(e,r):e===r)});return t.withMutations(function(t){r.forEach(function(e){return l(t,e)})})}function l(t,e){return t.withMutations(function(t){var n=e.get("id"),r=e.get("storeDeps");0===r.size?t.update("any",function(t){return t.remove(n)}):r.forEach(function(e){t.updateIn(["stores",e],function(t){return t?t.remove(n):t})}),t.removeIn(["observersMap",n])})}function p(t){var e=t.get("state");return t.withMutations(function(t){var n=t.get("stores"),r=n.keySeq().toJS();n.forEach(function(n,r){var i=e.get(r),o=n.handleReset(i);if(void 0===o&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store handleReset() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(o))throw new Error("Store reset state must be an immutable value, did you forget to call toImmutable");t.setIn(["state",r],o)}),t.update("storeStates",function(t){return b(t,r)}),v(t)})}function _(t,e){var n=t.get("state");if((0,z.isKeyPath)(e))return i(n.getIn(e),t);if(!(0,C.isGetter)(e))throw new Error("evaluate must be passed a keyPath or Getter");if(g(t,e))return i(E(t,e),t);var r=(0,C.getDeps)(e).map(function(e){return _(t,e).result}),o=(0,C.getComputeFn)(e).apply(null,r);return i(o,m(t,e,o))}function d(t){var e={};return t.get("stores").forEach(function(n,r){var i=t.getIn(["state",r]),o=n.serialize(i);void 0!==o&&(e[r]=o)}),e}function v(t){return t.set("dirtyStores",w.default.Set())}function y(t){return t}function S(t,e){var n=y(e);return t.getIn(["cache",n])}function g(t,e){var n=S(t,e);if(!n)return!1;var r=n.get("storeStates");return 0!==r.size&&r.every(function(e,n){return t.getIn(["storeStates",n])===e})}function m(t,e,n){var r=y(e),i=t.get("dispatchId"),o=(0,C.getStoreDeps)(e),u=(0,D.toImmutable)({}).withMutations(function(e){o.forEach(function(n){var r=t.getIn(["storeStates",n]);e.set(n,r)})});return t.setIn(["cache",r],w.default.Map({value:n,storeStates:u,dispatchId:i}))}function E(t,e){var n=y(e);return t.getIn(["cache",n,"value"])}function I(t){return t.update("dispatchId",function(t){return t+1})}function b(t,e){return t.withMutations(function(t){e.forEach(function(e){var n=t.has(e)?t.get(e)+1:1;t.set(e,n)})})}Object.defineProperty(e,"__esModule",{value:!0}),e.registerStores=o,e.replaceStores=u,e.dispatch=a,e.loadState=s,e.addObserver=c,e.getOption=f,e.removeObserver=h,e.removeObserverByEntry=l,e.reset=p,e.evaluate=_,e.serialize=d,e.resetDirtyStores=v;var O=n(3),w=r(O),T=n(9),A=r(T),D=n(5),C=n(10),z=n(11),R=n(4),L=w.default.Record({result:null,reactorState:null})},function(t,e,n){var r=n(8);e.dispatchStart=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.groupCollapsed("Dispatch: %s",e),console.group("payload"),console.debug(n),console.groupEnd())},e.dispatchError=function(t,e){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.debug("Dispatch error: "+e),console.groupEnd())},e.dispatchEnd=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&((0,r.getOption)(t,"logDirtyStores")&&console.log("Stores updated:",n.toList().toJS()),(0,r.getOption)(t,"logAppState")&&console.debug("Dispatch done, new state: ",e.toJS()),console.groupEnd())}},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t){return(0,l.isArray)(t)&&(0,l.isFunction)(t[t.length-1])}function o(t){return t[t.length-1]}function u(t){return t.slice(0,t.length-1)}function a(t,e){e||(e=h.default.Set());var n=h.default.Set().withMutations(function(e){if(!i(t))throw new Error("getFlattenedDeps must be passed a Getter");u(t).forEach(function(t){if((0,p.isKeyPath)(t))e.add((0,f.List)(t));else{if(!i(t))throw new Error("Invalid getter, each dependency must be a KeyPath or Getter");e.union(a(t))}})});return e.union(n)}function s(t){if(!(0,p.isKeyPath)(t))throw new Error("Cannot create Getter from KeyPath: "+t);return[t,_]}function c(t){if(t.hasOwnProperty("__storeDeps"))return t.__storeDeps;var e=a(t).map(function(t){return t.first()}).filter(function(t){return!!t});return Object.defineProperty(t,"__storeDeps",{enumerable:!1,configurable:!1,writable:!1,value:e}),e}Object.defineProperty(e,"__esModule",{value:!0});var f=n(3),h=r(f),l=n(4),p=n(11),_=function(t){return t};e.default={isGetter:i,getComputeFn:o,getFlattenedDeps:a,getStoreDeps:c,getDeps:u,fromKeyPath:s},t.exports=e.default},function(t,e,n){function r(t){return t&&t.__esModule?t:{default:t}}function i(t){return(0,s.isArray)(t)&&!(0,s.isFunction)(t[t.length-1])}function o(t,e){var n=a.default.List(t),r=a.default.List(e);return a.default.is(n,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.isKeyPath=i,e.isEqual=o;var u=n(3),a=r(u),s=n(4)},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=(0,r.Map)({logDispatches:!1,logAppState:!1,logDirtyStores:!1,throwOnUndefinedActionType:!1,throwOnUndefinedStoreReturnValue:!1,throwOnNonImmutableStore:!1,throwOnDispatchInDispatch:!1});e.PROD_OPTIONS=i;var o=(0,r.Map)({logDispatches:!0,logAppState:!0,logDirtyStores:!0,throwOnUndefinedActionType:!0,throwOnUndefinedStoreReturnValue:!0,throwOnNonImmutableStore:!0,throwOnDispatchInDispatch:!0});e.DEBUG_OPTIONS=o;var u=(0,r.Record)({dispatchId:0,state:(0,r.Map)(),stores:(0,r.Map)(),cache:(0,r.Map)(),storeStates:(0,r.Map)(),dirtyStores:(0,r.Set)(),debug:!1,options:i});e.ReactorState=u;var a=(0,r.Record)({any:(0,r.Set)(),stores:(0,r.Map)({}),observersMap:(0,r.Map)({}),nextId:1});e.ObserverState=a}])})}),Ce=t(De),ze=e(function(t){var e=function(t){var e,n={};if(!(t instanceof Object)||Array.isArray(t))throw new Error("keyMirror(...): Argument must be an object.");for(e in t)t.hasOwnProperty(e)&&(n[e]=e);return n};t.exports=e}),Re=t(ze),Le=Re({VALIDATING_AUTH_TOKEN:null,VALID_AUTH_TOKEN:null,INVALID_AUTH_TOKEN:null,LOG_OUT:null}),Me=Ce.Store,je=Ce.toImmutable,Ne=new Me({getInitialState:function(){return je({isValidating:!1,authToken:!1,host:null,isInvalid:!1,errorMessage:""})},initialize:function(){this.on(Le.VALIDATING_AUTH_TOKEN,n),this.on(Le.VALID_AUTH_TOKEN,r),this.on(Le.INVALID_AUTH_TOKEN,i)}}),ke=Ce.Store,Ue=Ce.toImmutable,Pe=new ke({getInitialState:function(){return Ue({authToken:null,host:""})},initialize:function(){this.on(Le.VALID_AUTH_TOKEN,o),this.on(Le.LOG_OUT,u)}}),He=Ce.Store,xe=new He({getInitialState:function(){return!0},initialize:function(){this.on(Le.VALID_AUTH_TOKEN,a)}}),Ve=Re({STREAM_START:null,STREAM_STOP:null,STREAM_ERROR:null}),qe="object"==typeof window&&"EventSource"in window,Fe=Ce.Store,Ge=Ce.toImmutable,Ke=new Fe({getInitialState:function(){return Ge({isSupported:qe,isStreaming:!1,useStreaming:!0,hasError:!1})},initialize:function(){this.on(Ve.STREAM_START,s),this.on(Ve.STREAM_STOP,c),this.on(Ve.STREAM_ERROR,f),this.on(Ve.LOG_OUT,h)}}),Ye=Re({API_FETCH_ALL_START:null,API_FETCH_ALL_SUCCESS:null,API_FETCH_ALL_FAIL:null,SYNC_SCHEDULED:null,SYNC_SCHEDULE_CANCELLED:null}),Be=Ce.Store,Je=new Be({getInitialState:function(){return!0},initialize:function(){this.on(Ye.API_FETCH_ALL_START,function(){return!0}),this.on(Ye.API_FETCH_ALL_SUCCESS,function(){return!1}),this.on(Ye.API_FETCH_ALL_FAIL,function(){return!1}),this.on(Ye.LOG_OUT,function(){return!1})}}),We=Ce.Store,Xe=new We({getInitialState:function(){return!1},initialize:function(){this.on(Ye.SYNC_SCHEDULED,function(){return!0}),this.on(Ye.SYNC_SCHEDULE_CANCELLED,function(){return!1}),this.on(Ye.LOG_OUT,function(){return!1})}}),Qe=Re({API_FETCH_SUCCESS:null,API_FETCH_START:null,API_FETCH_FAIL:null,API_SAVE_SUCCESS:null,API_SAVE_START:null,API_SAVE_FAIL:null,API_DELETE_SUCCESS:null,API_DELETE_START:null,API_DELETE_FAIL:null,LOG_OUT:null}),Ze=Ce.Store,$e=Ce.toImmutable,tn=new Ze({getInitialState:function(){return $e({})},initialize:function(){var t=this;this.on(Qe.API_FETCH_SUCCESS,l),this.on(Qe.API_SAVE_SUCCESS,l),this.on(Qe.API_DELETE_SUCCESS,p),this.on(Qe.LOG_OUT,function(){return t.getInitialState()})}}),en=e(function(t){function e(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function n(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}var r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=n()?Object.assign:function(t,n){for(var o,u,a=arguments,s=e(t),c=1;c6Vvyn#NXrZ&mzc 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 literal 31529 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 diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 38667131117..e99fe69c8e7 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -2,4 +2,4 @@ },_distributeDirtyRoots:function(){for(var e,t=this.shadyRoot._dirtyRoots,o=0,i=t.length;o0?~setTimeout(e,t):(this._twiddle.textContent=this._twiddleContent++,this._callbacks.push(e),this._currVal++)},cancel:function(e){if(e<0)clearTimeout(~e);else{var t=e-this._lastVal;if(t>=0){if(!this._callbacks[t])throw"invalid async handle: "+e;this._callbacks[t]=null}}},_atEndOfMicrotask:function(){for(var e=this._callbacks.length,t=0;t \ No newline at end of file +this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},i=window.Element.prototype.animate;window.Element.prototype.animate=function(n,r){var o=i.call(this,n,r);o._cancelHandlers=[],o.oncancel=null;var a=o.cancel;o.cancel=function(){a.call(this);var i=new e(this,null,t()),n=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){n.forEach(function(t){t.call(i.target,i)})},0)};var s=o.addEventListener;o.addEventListener=function(t,e){"function"==typeof e&&"cancel"==t?this._cancelHandlers.push(e):s.call(this,t,e)};var u=o.removeEventListener;return o.removeEventListener=function(t,e){if("cancel"==t){var i=this._cancelHandlers.indexOf(e);i>=0&&this._cancelHandlers.splice(i,1)}else u.call(this,t,e)},o}}}(),function(t){var e=document.documentElement,i=null,n=!1;try{var r=getComputedStyle(e).getPropertyValue("opacity"),o="0"==r?"1":"0";i=e.animate({opacity:[o,o]},{duration:1}),i.currentTime=0,n=getComputedStyle(e).getPropertyValue("opacity")==o}catch(t){}finally{i&&i.cancel()}if(!n){var a=window.Element.prototype.animate;window.Element.prototype.animate=function(e,i){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&e[Symbol.iterator]&&(e=Array.from(e)),Array.isArray(e)||null===e||(e=t.convertToArrayForm(e)),a.call(this,e,i)}}}(c),!function(t,e,i){function n(t){var i=e.timeline;i.currentTime=t,i._discardAnimations(),0==i._animations.length?o=!1:requestAnimationFrame(n)}var r=window.requestAnimationFrame;window.requestAnimationFrame=function(t){return r(function(i){e.timeline._updateAnimationsPromises(),t(i),e.timeline._updateAnimationsPromises()})},e.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},e.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){e.animationsWithPromises=e.animationsWithPromises.filter(function(t){return t._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(t){return"finished"!=t.playState&&"idle"!=t.playState})},_play:function(t){var i=new e.Animation(t,this);return this._animations.push(i),e.restartWebAnimationsNextTick(),i._updatePromises(),i._animation.play(),i._updatePromises(),i},play:function(t){return t&&t.remove(),this._play(t)}};var o=!1;e.restartWebAnimationsNextTick=function(){o||(o=!0,requestAnimationFrame(n))};var a=new e.AnimationTimeline;e.timeline=a;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return a}})}catch(t){}try{window.document.timeline=a}catch(t){}}(c,e,f),function(t,e,i){e.animationsWithPromises=[],e.Animation=function(e,i){if(this.id="",e&&e._id&&(this.id=e._id),this.effect=e,e&&(e._animation=this),!i)throw new Error("Animation with null timeline is not supported");this._timeline=i,this._sequenceNumber=t.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},e.Animation.prototype={_updatePromises:function(){var t=this._oldPlayState,e=this.playState;return this._readyPromise&&e!==t&&("idle"==e?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==t?this._resolveReadyPromise():"pending"==e&&(this._readyPromise=void 0)),this._finishedPromise&&e!==t&&("idle"==e?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==e?this._resolveFinishedPromise():"finished"==t&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var t,i,n,r,o=!!this._animation;o&&(t=this.playbackRate,i=this._paused,n=this.startTime,r=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=e.newUnderlyingAnimationForKeyframeEffect(this.effect),e.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=e.newUnderlyingAnimationForGroup(this.effect),e.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&e.bindAnimationForCustomEffect(this),o&&(1!=t&&(this.playbackRate=t),null!==n?this.startTime=n:null!==r?this.currentTime=r:null!==this._holdTime&&(this.currentTime=this._holdTime),i&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var t=this.effect._timing.delay;this._childAnimations.forEach(function(i){this._arrangeChildren(i,t),this.effect instanceof window.SequenceEffect&&(t+=e.groupChildDuration(i.effect))}.bind(this))}},_setExternalAnimation:function(t){if(this.effect&&this._isGroup)for(var e=0;e \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 85c93d71a4ccbb9b090dd983e6d6bdfa197f706c..20a48a1f014d0d43a1eb7c60b844615ac0be5471 100644 GIT binary patch delta 12115 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 delta 12423 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 DXL?i+ diff --git a/homeassistant/components/notify/html5.py b/homeassistant/components/notify/html5.py index 6aafec8e120..54727a60d3f 100644 --- a/homeassistant/components/notify/html5.py +++ b/homeassistant/components/notify/html5.py @@ -182,6 +182,30 @@ class HTML5PushRegistrationView(HomeAssistantView): return self.json_message('Push notification subscriber registered.') + def delete(self, request): + """Delete a registration.""" + subscription = request.json.get(ATTR_SUBSCRIPTION) + + found = None + + for key, registration in self.registrations.items(): + if registration.get(ATTR_SUBSCRIPTION) == subscription: + found = key + break + + if not found: + # If not found, unregistering was already done. Return 200 + return self.json_message('Registration not found.') + + reg = self.registrations.pop(found) + + if not _save_config(self.json_path, self.registrations): + self.registrations[found] = reg + return self.json_message('Error saving registration.', + HTTP_INTERNAL_SERVER_ERROR) + + return self.json_message('Push notification subscriber unregistered.') + class HTML5PushCallbackView(HomeAssistantView): """Accepts push registrations from a browser.""" diff --git a/tests/components/notify/test_html5.py b/tests/components/notify/test_html5.py index 6201fb24ea0..d3d20d01289 100644 --- a/tests/components/notify/test_html5.py +++ b/tests/components/notify/test_html5.py @@ -8,6 +8,34 @@ from werkzeug.test import EnvironBuilder from homeassistant.components.http import request_class from homeassistant.components.notify import html5 +SUBSCRIPTION_1 = { + 'browser': 'chrome', + 'subscription': { + 'endpoint': 'https://google.com', + 'keys': {'auth': 'auth', 'p256dh': 'p256dh'} + }, +} +SUBSCRIPTION_2 = { + 'browser': 'firefox', + 'subscription': { + 'endpoint': 'https://example.com', + 'keys': { + 'auth': 'bla', + 'p256dh': 'bla', + }, + }, +} +SUBSCRIPTION_3 = { + 'browser': 'chrome', + 'subscription': { + 'endpoint': 'https://example.com/not_exist', + 'keys': { + 'auth': 'bla', + 'p256dh': 'bla', + }, + }, +} + class TestHtml5Notify(object): """Tests for HTML5 notify platform.""" @@ -40,13 +68,7 @@ class TestHtml5Notify(object): hass = MagicMock() data = { - 'device': { - 'browser': 'chrome', - 'subscription': { - 'endpoint': 'https://google.com', - 'keys': {'auth': 'auth', 'p256dh': 'p256dh'} - }, - } + 'device': SUBSCRIPTION_1 } with tempfile.NamedTemporaryFile() as fp: @@ -63,10 +85,7 @@ class TestHtml5Notify(object): assert len(mock_wp.mock_calls) == 2 # WebPusher constructor - assert mock_wp.mock_calls[0][1][0] == {'endpoint': - 'https://google.com', - 'keys': {'auth': 'auth', - 'p256dh': 'p256dh'}} + assert mock_wp.mock_calls[0][1][0] == SUBSCRIPTION_1['subscription'] # Call to send payload = json.loads(mock_wp.mock_calls[1][1][0]) @@ -92,22 +111,13 @@ class TestHtml5Notify(object): assert view.json_path == fp.name assert view.registrations == {} - builder = EnvironBuilder(method='POST', data=json.dumps({ - 'browser': 'chrome', - 'subscription': {'endpoint': 'https://google.com', - 'keys': {'auth': 'auth', - 'p256dh': 'p256dh'}}, - })) + builder = EnvironBuilder(method='POST', + data=json.dumps(SUBSCRIPTION_1)) Request = request_class() resp = view.post(Request(builder.get_environ())) expected = { - 'unnamed device': { - 'browser': 'chrome', - 'subscription': {'endpoint': 'https://google.com', - 'keys': {'auth': 'auth', - 'p256dh': 'p256dh'}}, - }, + 'unnamed device': SUBSCRIPTION_1, } assert resp.status_code == 200, resp.response @@ -154,6 +164,116 @@ class TestHtml5Notify(object): resp = view.post(Request(builder.get_environ())) assert resp.status_code == 400, resp.response + def test_unregistering_device_view(self): + """Test that the HTML unregister view works.""" + hass = MagicMock() + + config = { + 'some device': SUBSCRIPTION_1, + 'other device': SUBSCRIPTION_2, + } + + with tempfile.NamedTemporaryFile() as fp: + hass.config.path.return_value = fp.name + fp.write(json.dumps(config).encode('utf-8')) + fp.flush() + service = html5.get_service(hass, {}) + + assert service is not None + + # assert hass.called + assert len(hass.mock_calls) == 3 + + view = hass.mock_calls[1][1][0] + assert view.json_path == fp.name + assert view.registrations == config + + builder = EnvironBuilder(method='DELETE', data=json.dumps({ + 'subscription': SUBSCRIPTION_1['subscription'], + })) + Request = request_class() + resp = view.delete(Request(builder.get_environ())) + + config.pop('some device') + + assert resp.status_code == 200, resp.response + assert view.registrations == config + with open(fp.name) as fpp: + assert json.load(fpp) == config + + def test_unregistering_device_view_handles_unknown_subscription(self): + """Test that the HTML unregister view handles unknown subscriptions.""" + hass = MagicMock() + + config = { + 'some device': SUBSCRIPTION_1, + 'other device': SUBSCRIPTION_2, + } + + with tempfile.NamedTemporaryFile() as fp: + hass.config.path.return_value = fp.name + fp.write(json.dumps(config).encode('utf-8')) + fp.flush() + service = html5.get_service(hass, {}) + + assert service is not None + + # assert hass.called + assert len(hass.mock_calls) == 3 + + view = hass.mock_calls[1][1][0] + assert view.json_path == fp.name + assert view.registrations == config + + builder = EnvironBuilder(method='DELETE', data=json.dumps({ + 'subscription': SUBSCRIPTION_3['subscription'] + })) + Request = request_class() + resp = view.delete(Request(builder.get_environ())) + + assert resp.status_code == 200, resp.response + assert view.registrations == config + with open(fp.name) as fpp: + assert json.load(fpp) == config + + def test_unregistering_device_view_handles_json_safe_error(self): + """Test that the HTML unregister view handles JSON write errors.""" + hass = MagicMock() + + config = { + 'some device': SUBSCRIPTION_1, + 'other device': SUBSCRIPTION_2, + } + + with tempfile.NamedTemporaryFile() as fp: + hass.config.path.return_value = fp.name + fp.write(json.dumps(config).encode('utf-8')) + fp.flush() + service = html5.get_service(hass, {}) + + assert service is not None + + # assert hass.called + assert len(hass.mock_calls) == 3 + + view = hass.mock_calls[1][1][0] + assert view.json_path == fp.name + assert view.registrations == config + + builder = EnvironBuilder(method='DELETE', data=json.dumps({ + 'subscription': SUBSCRIPTION_1['subscription'], + })) + Request = request_class() + + with patch('homeassistant.components.notify.html5._save_config', + return_value=False): + resp = view.delete(Request(builder.get_environ())) + + assert resp.status_code == 500, resp.response + assert view.registrations == config + with open(fp.name) as fpp: + assert json.load(fpp) == config + def test_callback_view_no_jwt(self): """Test that the notification callback view works without JWT.""" hass = MagicMock() @@ -185,13 +305,7 @@ class TestHtml5Notify(object): hass = MagicMock() data = { - 'device': { - 'browser': 'chrome', - 'subscription': { - 'endpoint': 'https://google.com', - 'keys': {'auth': 'auth', 'p256dh': 'p256dh'} - }, - } + 'device': SUBSCRIPTION_1, } with tempfile.NamedTemporaryFile() as fp: @@ -211,11 +325,8 @@ class TestHtml5Notify(object): assert len(mock_wp.mock_calls) == 2 # WebPusher constructor - assert mock_wp.mock_calls[0][1][0] == {'endpoint': - 'https://google.com', - 'keys': {'auth': 'auth', - 'p256dh': - 'p256dh'}} + assert mock_wp.mock_calls[0][1][0] == \ + SUBSCRIPTION_1['subscription'] # Call to send push_payload = json.loads(mock_wp.mock_calls[1][1][0])