UNPKG

immutable

Version:
25 lines 68.5 kB
/** * @license * MIT License * * Copyright (c) 2014-present, Lee Byron and other contributors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Immutable={})}(this,(function(t){"use strict";var e="@@__IMMUTABLE_INDEXED__@@";function r(t){return Boolean(t&&t[e])}var n="@@__IMMUTABLE_KEYED__@@";function i(t){return Boolean(t&&t[n])}function o(t){return i(t)||r(t)}var u="@@__IMMUTABLE_ITERABLE__@@";function s(t){return Boolean(t&&t[u])}var a=function(t){return s(t)?t:Q(t)},c=function(t){function e(t){return i(t)?t:X(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(a),f=function(t){function e(t){return r(t)?t:G(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(a),h=function(t){function e(t){return s(t)&&!o(t)?t:Z(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(a);a.Keyed=c,a.Indexed=f,a.Set=h;var p=0,_=1,l=2,v="function"==typeof Symbol&&Symbol.iterator,y="@@iterator",d=v||y,g=function(t){this.next=t};function w(t,e,r,n){var i=t===p?e:t===_?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function m(){return{value:void 0,done:!0}}function b(t){return!!Array.isArray(t)||!!I(t)}function z(t){return!(!t||"function"!=typeof t.next)}function S(t){var e=I(t);return e&&e.call(t)}function I(t){var e=t&&(v&&t[v]||t[y]);if("function"==typeof e)return e}g.prototype.toString=function(){return"[Iterator]"},g.KEYS=p,g.VALUES=_,g.ENTRIES=l,g.prototype.inspect=g.prototype.toSource=function(){return this.toString()},g.prototype[d]=function(){return this};var O="delete",E=5,j=1<<E,M=j-1,q={};function x(t){t&&(t.value=!0)}function D(){}function A(t){return void 0===t.size&&(t.size=t.__iterate(R)),t.size}function k(t,e){if("number"!=typeof e){var r=e>>>0;if(""+r!==e||4294967295===r)return NaN;e=r}return e<0?A(t)+e:e}function R(){return!0}function U(t,e,r){return(0===t&&!L(t)||void 0!==r&&t<=-r)&&(void 0===e||void 0!==r&&e>=r)}function T(t,e){return K(t,e,0)}function B(t,e){return K(t,e,e)}function K(t,e,r){return void 0===t?r:L(t)?e===1/0?e:0|Math.max(0,e+t):void 0===e||e===t?t:0|Math.min(e,t)}function L(t){return t<0||0===t&&1/t==-1/0}var C="@@__IMMUTABLE_RECORD__@@";function N(t){return Boolean(t&&t[C])}function P(t){return s(t)||N(t)}var W="@@__IMMUTABLE_ORDERED__@@";function H(t){return Boolean(t&&t[W])}var J="@@__IMMUTABLE_SEQ__@@";function V(t){return Boolean(t&&t[J])}var F=Object.prototype.hasOwnProperty;function Y(t){return!(!Array.isArray(t)&&"string"!=typeof t)||t&&"object"==typeof t&&Number.isInteger(t.length)&&t.length>=0&&(0===t.length?1===Object.keys(t).length:t.hasOwnProperty(t.length-1))}var Q=function(t){function e(t){return null==t?nt():P(t)?t.toSeq():function(t){var e=ut(t);if(e)return(n=I(r=t))&&n===r.entries?e.fromEntrySeq():function(t){var e=I(t);return e&&e===t.keys}(t)?e.toSetSeq():e;var r,n;if("object"==typeof t)return new tt(t);throw new TypeError("Expected Array or collection object of values, or keyed object: "+t)}(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toSeq=function(){return this},e.prototype.toString=function(){return this.__toString("Seq {","}")},e.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},e.prototype.__iterate=function(t,e){var r=this._cache;if(r){for(var n=r.length,i=0;i!==n;){var o=r[e?n-++i:i++];if(!1===t(o[1],o[0],this))break}return i}return this.__iterateUncached(t,e)},e.prototype.__iterator=function(t,e){var r=this._cache;if(r){var n=r.length,i=0;return new g((function(){if(i===n)return{value:void 0,done:!0};var o=r[e?n-++i:i++];return w(t,o[0],o[1])}))}return this.__iteratorUncached(t,e)},e}(a),X=function(t){function e(t){return null==t?nt().toKeyedSeq():s(t)?i(t)?t.toSeq():t.fromEntrySeq():N(t)?t.toSeq():it(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toKeyedSeq=function(){return this},e}(Q),G=function(t){function e(t){return null==t?nt():s(t)?i(t)?t.entrySeq():t.toIndexedSeq():N(t)?t.toSeq().entrySeq():ot(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return e(arguments)},e.prototype.toIndexedSeq=function(){return this},e.prototype.toString=function(){return this.__toString("Seq [","]")},e}(Q),Z=function(t){function e(t){return(s(t)&&!o(t)?t:G(t)).toSetSeq()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return e(arguments)},e.prototype.toSetSeq=function(){return this},e}(Q);Q.isSeq=V,Q.Keyed=X,Q.Set=Z,Q.Indexed=G,Q.prototype[J]=!0;var $=function(t){function e(t){this._array=t,this.size=t.length}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t,e){return this.has(t)?this._array[k(this,t)]:e},e.prototype.__iterate=function(t,e){for(var r=this._array,n=r.length,i=0;i!==n;){var o=e?n-++i:i++;if(!1===t(r[o],o,this))break}return i},e.prototype.__iterator=function(t,e){var r=this._array,n=r.length,i=0;return new g((function(){if(i===n)return{value:void 0,done:!0};var o=e?n-++i:i++;return w(t,o,r[o])}))},e}(G),tt=function(t){function e(t){var e=Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]);this._object=t,this._keys=e,this.size=e.length}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},e.prototype.has=function(t){return F.call(this._object,t)},e.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length,o=0;o!==i;){var u=n[e?i-++o:o++];if(!1===t(r[u],u,this))break}return o},e.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length,o=0;return new g((function(){if(o===i)return{value:void 0,done:!0};var u=n[e?i-++o:o++];return w(t,u,r[u])}))},e}(X);tt.prototype[W]=!0;var et,rt=function(t){function e(t){this._collection=t,this.size=t.length||t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var r=S(this._collection),n=0;if(z(r))for(var i;!(i=r.next()).done&&!1!==t(i.value,n++,this););return n},e.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=S(this._collection);if(!z(r))return new g(m);var n=0;return new g((function(){var e=r.next();return e.done?e:w(t,n++,e.value)}))},e}(G);function nt(){return et||(et=new $([]))}function it(t){var e=ut(t);if(e)return e.fromEntrySeq();if("object"==typeof t)return new tt(t);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+t)}function ot(t){var e=ut(t);if(e)return e;throw new TypeError("Expected Array or collection object of values: "+t)}function ut(t){return Y(t)?new $(t):b(t)?new rt(t):void 0}function st(){return this.__ensureOwner()}function at(){return this.__ownerID?this:this.__ensureOwner(new D)}var ct="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var r=65535&(t|=0),n=65535&(e|=0);return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0};function ft(t){return t>>>1&1073741824|3221225471&t}var ht=Object.prototype.valueOf;function pt(t){if(null==t)return _t(t);if("function"==typeof t.hashCode)return ft(t.hashCode(t));var e,r=(e=t).valueOf!==ht&&"function"==typeof e.valueOf?e.valueOf(e):e;if(null==r)return _t(r);switch(typeof r){case"boolean":return r?1108378657:1108378656;case"number":return function(t){if(t!=t||t===1/0)return 0;var e=0|t;e!==t&&(e^=4294967295*t);for(;t>4294967295;)e^=t/=4294967295;return ft(e)}(r);case"string":return r.length>Ot?function(t){var e=Mt[t];void 0===e&&(e=lt(t),jt===Et&&(jt=0,Mt={}),jt++,Mt[t]=e);return e}(r):lt(r);case"object":case"function":return function(t){var e;if(bt&&void 0!==(e=mt.get(t)))return e;if(e=t[It],void 0!==e)return e;if(!gt){if(void 0!==(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[It]))return e;if(void 0!==(e=function(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}(t)))return e}if(e=wt(),bt)mt.set(t,e);else{if(void 0!==dt&&!1===dt(t))throw new Error("Non-extensible objects are not allowed as keys.");if(gt)Object.defineProperty(t,It,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[It]=e;else{if(void 0===t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[It]=e}}return e}(r);case"symbol":return function(t){var e=zt[t];if(void 0!==e)return e;return e=wt(),zt[t]=e,e}(r);default:if("function"==typeof r.toString)return lt(r.toString());throw new Error("Value type "+typeof r+" cannot be hashed.")}}function _t(t){return null===t?1108378658:1108378659}function lt(t){for(var e=0,r=0;r<t.length;r++)e=31*e+t.charCodeAt(r)|0;return ft(e)}var vt=(1048576*Math.random()|1)%1048576||40503;function yt(t){if("string"!=typeof t)return pt(t);for(var e=0,r=0;r<t.length;r++)e=vt*e+t.charCodeAt(r)|0;return e}var dt=Object.isExtensible,gt=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}();function wt(){var t=++St;return 1073741824&St&&(St=0),t}var mt,bt="function"==typeof WeakMap;bt&&(mt=new WeakMap);var zt=Object.create(null),St=0,It="__immutablehash__";"function"==typeof Symbol&&(It=Symbol(It));var Ot=16,Et=255,jt=0,Mt={},qt=function(t){function e(t,e){this._iter=t,this._useKeys=e,this.size=t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t,e){return this._iter.get(t,e)},e.prototype.has=function(t){return this._iter.has(t)},e.prototype.valueSeq=function(){return this._iter.valueSeq()},e.prototype.reverse=function(){var t=this,e=Ut(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},e.prototype.map=function(t,e){var r=this,n=Rt(this,t,e);return this._useKeys||(n.valueSeq=function(){return r._iter.toSeq().map(t,e)}),n},e.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate((function(e,n){return t(e,n,r)}),e)},e.prototype.__iterator=function(t,e){return this._iter.__iterator(t,e)},e}(X);qt.prototype[W]=!0;var xt=function(t){function e(t){this._iter=t,this.size=t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.includes=function(t){return this._iter.includes(t)},e.prototype.__iterate=function(t,e){var r=this,n=0;return e&&A(this),this._iter.__iterate((function(i){return t(i,e?r.size-++n:n++,r)}),e)},e.prototype.__iterator=function(t,e){var r=this,n=this._iter.__iterator(_,e),i=0;return e&&A(this),new g((function(){var o=n.next();return o.done?o:w(t,e?r.size-++i:i++,o.value,o)}))},e}(G),Dt=function(t){function e(t){this._iter=t,this.size=t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.has=function(t){return this._iter.includes(t)},e.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate((function(e){return t(e,e,r)}),e)},e.prototype.__iterator=function(t,e){var r=this._iter.__iterator(_,e);return new g((function(){var e=r.next();return e.done?e:w(t,e.value,e.value,e)}))},e}(Z),At=function(t){function e(t){this._iter=t,this.size=t.size}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.entrySeq=function(){return this._iter.toSeq()},e.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate((function(e){if(e){Vt(e);var n=s(e);return t(n?e.get(1):e[1],n?e.get(0):e[0],r)}}),e)},e.prototype.__iterator=function(t,e){var r=this._iter.__iterator(_,e);return new g((function(){for(;;){var e=r.next();if(e.done)return e;var n=e.value;if(n){Vt(n);var i=s(n);return w(t,i?n.get(0):n[0],i?n.get(1):n[1],e)}}}))},e}(X);function kt(t){var e=Yt(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=Qt,e.__iterateUncached=function(e,r){var n=this;return t.__iterate((function(t,r){return!1!==e(r,t,n)}),r)},e.__iteratorUncached=function(e,r){if(e===l){var n=t.__iterator(e,r);return new g((function(){var t=n.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===_?p:_,r)},e}function Rt(t,e,r){var n=Yt(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,q);return o===q?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate((function(t,i,u){return!1!==n(e.call(r,t,i,u),i,o)}),i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(l,i);return new g((function(){var i=o.next();if(i.done)return i;var u=i.value,s=u[0];return w(n,s,e.call(r,u[1],s,t),i)}))},n}function Ut(t,e){var r=Yt(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=kt(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=Qt,r.__iterate=function(r,n){var i=this,o=0;return n&&A(t),t.__iterate((function(t,u){return r(t,e?u:n?i.size-++o:o++,i)}),!n)},r.__iterator=function(n,i){var o=0;i&&A(t);var u=t.__iterator(l,!i);return new g((function(){var t=u.next();if(t.done)return t;var s=t.value;return w(n,e?s[0]:i?r.size-++o:o++,s[1],t)}))},r}function Tt(t,e,r,n){var i=Yt(t);return n&&(i.has=function(n){var i=t.get(n,q);return i!==q&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,q);return o!==q&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,s=0;return t.__iterate((function(t,o,a){if(e.call(r,t,o,a))return s++,i(t,n?o:s-1,u)}),o),s},i.__iteratorUncached=function(i,o){var u=t.__iterator(l,o),s=0;return new g((function(){for(;;){var o=u.next();if(o.done)return o;var a=o.value,c=a[0],f=a[1];if(e.call(r,f,c,t))return w(i,n?c:s++,f,o)}}))},i}function Bt(t,e,r,n){var i=t.size;if(U(e,r,i))return t;if(void 0===i&&(e<0||r<0))return Bt(t.toSeq().cacheResult(),e,r,n);var o,u=T(e,i),s=B(r,i)-u;s==s&&(o=s<0?0:s);var a=Yt(t);return a.size=0===o?o:t.size&&o||void 0,!n&&V(t)&&o>=0&&(a.get=function(e,r){return(e=k(this,e))>=0&&e<o?t.get(e+u,r):r}),a.__iterateUncached=function(e,r){var i=this;if(0===o)return 0;if(r)return this.cacheResult().__iterate(e,r);var s=0,a=!0,c=0;return t.__iterate((function(t,r){if(!a||!(a=s++<u))return c++,!1!==e(t,n?r:c-1,i)&&c!==o})),c},a.__iteratorUncached=function(e,r){if(0!==o&&r)return this.cacheResult().__iterator(e,r);if(0===o)return new g(m);var i=t.__iterator(e,r),s=0,a=0;return new g((function(){for(;s++<u;)i.next();if(++a>o)return{value:void 0,done:!0};var t=i.next();return n||e===_||t.done?t:w(e,a-1,e===p?void 0:t.value[1],t)}))},a}function Kt(t,e,r,n){var i=Yt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,a=0;return t.__iterate((function(t,o,c){if(!s||!(s=e.call(r,t,o,c)))return a++,i(t,n?o:a-1,u)})),a},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(l,o),a=!0,c=0;return new g((function(){var t,o,f;do{if((t=s.next()).done)return n||i===_?t:w(i,c++,i===p?void 0:t.value[1],t);var h=t.value;o=h[0],f=h[1],a&&(a=e.call(r,f,o,u))}while(a);return i===l?t:w(i,o,f,t)}))},i}xt.prototype.cacheResult=qt.prototype.cacheResult=Dt.prototype.cacheResult=At.prototype.cacheResult=Qt;var Lt=function(t){function r(t){this._wrappedIterables=t.flatMap((function(t){return t._wrappedIterables?t._wrappedIterables:[t]})),this.size=this._wrappedIterables.reduce((function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}}),0),this[n]=this._wrappedIterables[0][n],this[e]=this._wrappedIterables[0][e],this[W]=this._wrappedIterables[0][W]}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.__iterateUncached=function(t,e){if(0!==this._wrappedIterables.length){if(e)return this.cacheResult().__iterate(t,e);for(var r=0,n=i(this),o=n?l:_,u=this._wrappedIterables[r].__iterator(o,e),s=!0,a=0;s;){for(var c=u.next();c.done;){if(++r===this._wrappedIterables.length)return a;c=(u=this._wrappedIterables[r].__iterator(o,e)).next()}s=!1!==(n?t(c.value[1],c.value[0],this):t(c.value,a,this)),a++}return a}},r.prototype.__iteratorUncached=function(t,e){var r=this;if(0===this._wrappedIterables.length)return new g(m);if(e)return this.cacheResult().__iterator(t,e);var n=0,i=this._wrappedIterables[n].__iterator(t,e);return new g((function(){for(var o=i.next();o.done;){if(++n===r._wrappedIterables.length)return o;o=(i=r._wrappedIterables[n].__iterator(t,e)).next()}return o}))},r}(Q);function Ct(t,e,r){var n=Yt(t);return n.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var u=0,a=!1;return function t(c,f){c.__iterate((function(o,c){return(!e||f<e)&&s(o)?t(o,f+1):(u++,!1===i(o,r?c:u-1,n)&&(a=!0)),!a}),o)}(t,0),u},n.__iteratorUncached=function(n,i){if(i)return this.cacheResult().__iterator(n,i);var o=t.__iterator(n,i),u=[],a=0;return new g((function(){for(;o;){var t=o.next();if(!1===t.done){var c=t.value;if(n===l&&(c=c[1]),e&&!(u.length<e)||!s(c))return r?t:w(n,a++,c,t);u.push(o),o=c.__iterator(n,i)}else o=u.pop()}return{value:void 0,done:!0}}))},n}function Nt(t,e,n){e||(e=Xt);var o=i(t),u=0,s=t.toSeq().map((function(e,r){return[r,e,u++,n?n(e,r,t):e]})).valueSeq().toArray();return s.sort((function(t,r){return e(t[3],r[3])||t[2]-r[2]})).forEach(o?function(t,e){s[e].length=2}:function(t,e){s[e]=t[1]}),o?X(s):r(t)?G(s):Z(s)}function Pt(t,e,r){if(e||(e=Xt),r){var n=t.toSeq().map((function(e,n){return[e,r(e,n,t)]})).reduce((function(t,r){return Wt(e,t[1],r[1])?r:t}));return n&&n[0]}return t.reduce((function(t,r){return Wt(e,t,r)?r:t}))}function Wt(t,e,r){var n=t(r,e);return 0===n&&r!==e&&(null==r||r!=r)||n>0}function Ht(t,e,r,n){var i=Yt(t),o=new $(r).map((function(t){return t.size}));return i.size=n?o.max():o.min(),i.__iterate=function(t,e){for(var r,n=this.__iterator(_,e),i=0;!(r=n.next()).done&&!1!==t(r.value,i++,this););return i},i.__iteratorUncached=function(t,i){var o=r.map((function(t){return t=a(t),S(i?t.reverse():t)})),u=0,s=!1;return new g((function(){var r;return s||(r=o.map((function(t){return t.next()})),s=n?r.every((function(t){return t.done})):r.some((function(t){return t.done}))),s?{value:void 0,done:!0}:w(t,u++,e.apply(null,r.map((function(t){return t.value}))))}))},i}function Jt(t,e){return t===e?t:V(t)?e:t.constructor(e)}function Vt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Ft(t){return i(t)?c:r(t)?f:h}function Yt(t){return Object.create((i(t)?X:r(t)?G:Z).prototype)}function Qt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Q.prototype.cacheResult.call(this)}function Xt(t,e){return void 0===t&&void 0===e?0:void 0===t?1:void 0===e?-1:t>e?1:t<e?-1:0}function Gt(t){return Boolean(t&&"function"==typeof t.equals&&"function"==typeof t.hashCode)}function Zt(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!=t&&e!=e)return!0;if(!t||!e)return!1}return!!(Gt(t)&&Gt(e)&&t.equals(e))}function $t(t,e,r,n){return tr(t,[e],r,n)}function te(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return re(this,t)}function ee(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];if("function"!=typeof t)throw new TypeError("Invalid merger function: "+t);return re(this,e,t)}function re(t,e,r){for(var n=[],i=0;i<e.length;i++){var o=c(e[i]);0!==o.size&&n.push(o)}return 0===n.length?t:0!==t.toSeq().size||t.__ownerID||1!==n.length?t.withMutations((function(t){for(var e=r?function(e,n){$t(t,n,q,(function(t){return t===q?e:r(t,e,n)}))}:function(e,r){t.set(r,e)},i=0;i<n.length;i++)n[i].forEach(e)})):N(t)?t:t.constructor(n[0])}var ne=Object.prototype.toString;function ie(t){if(!t||"object"!=typeof t||"[object Object]"!==ne.call(t))return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;for(var r=e,n=Object.getPrototypeOf(e);null!==n;)r=n,n=Object.getPrototypeOf(r);return r===e}function oe(t){return"object"==typeof t&&(P(t)||Array.isArray(t)||ie(t))}function ue(t){return"string"==typeof t&&("__proto__"===t||"constructor"===t)}function se(t,e){e=e||0;for(var r=Math.max(0,t.length-e),n=new Array(r),i=0;i<r;i++)n[i]=t[i+e];return n}function ae(t){if(Array.isArray(t))return se(t);var e={};for(var r in t)ue(r)||F.call(t,r)&&(e[r]=t[r]);return e}function ce(t,e,n){return fe(t,e,function(t){function e(n,o,u){return oe(n)&&oe(o)&&(s=o,a=Q(n),c=Q(s),r(a)===r(c)&&i(a)===i(c))?fe(n,[o],e):t?t(n,o,u):o;var s,a,c}return e}(n))}function fe(t,e,r){if(!oe(t))throw new TypeError("Cannot merge into non-data-structure value: "+t);if(P(t))return"function"==typeof r&&t.mergeWith?t.mergeWith.apply(t,[r].concat(e)):t.merge?t.merge.apply(t,e):t.concat.apply(t,e);for(var n=Array.isArray(t),i=t,o=n?f:c,u=n?function(e){i===t&&(i=ae(i)),i.push(e)}:function(e,n){if(!ue(n)){var o=F.call(i,n),u=o&&r?r(i[n],e,n):e;o&&u===i[n]||(i===t&&(i=ae(i)),i[n]=u)}},s=0;s<e.length;s++)o(e[s]).forEach(u);return i}function he(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return ce(this,t)}function pe(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return ce(this,e,t)}function _e(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return tr(this,t,Be(),(function(t){return ce(t,e)}))}function le(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return tr(this,t,Be(),(function(t){return fe(t,e)}))}function ve(t,e,r){return tr(t,e,q,(function(){return r}))}function ye(t,e){return ve(this,t,e)}function de(t,e,r){return 1===arguments.length?t(this):$t(this,t,e,r)}function ge(t,e,r){return tr(this,t,e,r)}function we(){return this.__altered}function me(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this}var be="@@__IMMUTABLE_MAP__@@";function ze(t){return Boolean(t&&t[be])}function Se(t,e){if(!t)throw new Error(e)}function Ie(t){Se(t!==1/0,"Cannot perform this action with an infinite size.")}var Oe=function(t){function e(e){return null==e?Be():ze(e)&&!H(e)?e:Be().withMutations((function(r){var n=t(e);Ie(n.size),n.forEach((function(t,e){return r.set(e,t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.__toString("Map {","}")},e.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},e.prototype.set=function(t,e){return Ke(this,t,e)},e.prototype.remove=function(t){return Ke(this,t,q)},e.prototype.deleteAll=function(t){var e=a(t);return 0===e.size?this:this.withMutations((function(t){e.forEach((function(e){return t.remove(e)}))}))},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Be()},e.prototype.sort=function(t){return zr(Nt(this,t))},e.prototype.sortBy=function(t,e){return zr(Nt(this,e,t))},e.prototype.map=function(t,e){var r=this;return this.withMutations((function(n){n.forEach((function(i,o){n.set(o,t.call(e,i,o,r))}))}))},e.prototype.__iterator=function(t,e){return new ke(this,t,e)},e.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate((function(e){return n++,t(e[1],e[0],r)}),e),n},e.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Te(this.size,this._root,t,this.__hash):0===this.size?Be():(this.__ownerID=t,this.__altered=!1,this)},e}(c);Oe.isMap=ze;var Ee=Oe.prototype;Ee[be]=!0,Ee[O]=Ee.remove,Ee.removeAll=Ee.deleteAll,Ee.setIn=ye,Ee.removeIn=Ee.deleteIn=nr,Ee.update=de,Ee.updateIn=ge,Ee.merge=Ee.concat=te,Ee.mergeWith=ee,Ee.mergeDeep=he,Ee.mergeDeepWith=pe,Ee.mergeIn=le,Ee.mergeDeepIn=_e,Ee.withMutations=me,Ee.wasAltered=we,Ee.asImmutable=st,Ee["@@transducer/init"]=Ee.asMutable=at,Ee["@@transducer/step"]=function(t,e){return t.set(e[0],e[1])},Ee["@@transducer/result"]=function(t){return t.asImmutable()};var je=function(t,e){this.ownerID=t,this.entries=e};je.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,u=i.length;o<u;o++)if(Zt(r,i[o][0]))return i[o][1];return n},je.prototype.update=function(t,e,r,n,i,o,u){for(var s=i===q,a=this.entries,c=0,f=a.length;c<f&&!Zt(n,a[c][0]);c++);var h=c<f;if(h?a[c][1]===i:s)return this;if(x(u),(s||!h)&&x(o),!s||1!==a.length){if(!h&&!s&&a.length>=He)return function(t,e,r,n){t||(t=new D);for(var i=new De(t,pt(r),[r,n]),o=0;o<e.length;o++){var u=e[o];i=i.update(t,0,void 0,u[0],u[1])}return i}(t,a,n,i);var p=t&&t===this.ownerID,_=p?a:se(a);return h?s?c===f-1?_.pop():_[c]=_.pop():_[c]=[n,i]:_.push([n,i]),p?(this.entries=_,this):new je(t,_)}};var Me=function(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r};Me.prototype.get=function(t,e,r,n){void 0===e&&(e=pt(r));var i=1<<((0===t?e:e>>>t)&M),o=this.bitmap;return 0==(o&i)?n:this.nodes[Pe(o&i-1)].get(t+E,e,r,n)},Me.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=pt(n));var s=(0===e?r:r>>>e)&M,a=1<<s,c=this.bitmap,f=0!=(c&a);if(!f&&i===q)return this;var h=Pe(c&a-1),p=this.nodes,_=f?p[h]:void 0,l=Le(_,t,e+E,r,n,i,o,u);if(l===_)return this;if(!f&&l&&p.length>=Je)return function(t,e,r,n,i){for(var o=0,u=new Array(j),s=0;0!==r;s++,r>>>=1)u[s]=1&r?e[o++]:void 0;return u[n]=i,new qe(t,o+1,u)}(t,p,c,s,l);if(f&&!l&&2===p.length&&Ce(p[1^h]))return p[1^h];if(f&&l&&1===p.length&&Ce(l))return l;var v=t&&t===this.ownerID,y=f?l?c:c^a:c|a,d=f?l?We(p,h,l,v):function(t,e,r){var n=t.length-1;if(r&&e===n)return t.pop(),t;for(var i=new Array(n),o=0,u=0;u<n;u++)u===e&&(o=1),i[u]=t[u+o];return i}(p,h,v):function(t,e,r,n){var i=t.length+1;if(n&&e+1===i)return t[e]=r,t;for(var o=new Array(i),u=0,s=0;s<i;s++)s===e?(o[s]=r,u=-1):o[s]=t[s+u];return o}(p,h,l,v);return v?(this.bitmap=y,this.nodes=d,this):new Me(t,y,d)};var qe=function(t,e,r){this.ownerID=t,this.count=e,this.nodes=r};qe.prototype.get=function(t,e,r,n){void 0===e&&(e=pt(r));var i=(0===t?e:e>>>t)&M,o=this.nodes[i];return o?o.get(t+E,e,r,n):n},qe.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=pt(n));var s=(0===e?r:r>>>e)&M,a=i===q,c=this.nodes,f=c[s];if(a&&!f)return this;var h=Le(f,t,e+E,r,n,i,o,u);if(h===f)return this;var p=this.count;if(f){if(!h&&--p<Ve)return function(t,e,r,n){for(var i=0,o=0,u=new Array(r),s=0,a=1,c=e.length;s<c;s++,a<<=1){var f=e[s];void 0!==f&&s!==n&&(i|=a,u[o++]=f)}return new Me(t,i,u)}(t,c,p,s)}else p++;var _=t&&t===this.ownerID,l=We(c,s,h,_);return _?(this.count=p,this.nodes=l,this):new qe(t,p,l)};var xe=function(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r,this._index=void 0};xe.prototype._positionOf=function(t,e){var r=this.entries,n=this._index;if(void 0===n&&e&&r.length>=Fe&&(n=this._buildIndex()),void 0!==n){var i=n[yt(t)];if(void 0!==i)for(var o=0;o<i.length;o++){var u=i[o];if(Zt(t,r[u][0]))return u}return-1}for(var s=0,a=r.length;s<a;s++)if(Zt(t,r[s][0]))return s;return-1},xe.prototype._buildIndex=function(){for(var t=Object.create(null),e=this.entries,r=0,n=e.length;r<n;r++){var i=yt(e[r][0]),o=t[i];void 0!==o?o.push(r):t[i]=[r]}return this._index=t,t},xe.prototype.get=function(t,e,r,n){var i=this._positionOf(r,!0);return-1===i?n:this.entries[i][1]},xe.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=pt(n));var s=i===q;if(r!==this.keyHash)return s?this:(x(u),x(o),Ne(this,t,e,r,[n,i]));var a=this.entries,c=a.length,f=t&&t===this.ownerID,h=this._positionOf(n,f),p=-1===h?c:h,_=-1!==h;if(_?a[p][1]===i:s)return this;if(x(u),(s||!_)&&x(o),s&&2===c)return new De(t,this.keyHash,a[1^p]);var l=f?a:se(a);if(_)s?(p===c-1?l.pop():l[p]=l.pop(),f&&(this._index=void 0)):l[p]=[n,i];else if(l.push([n,i]),f&&void 0!==this._index){var v=yt(n),y=this._index[v];void 0!==y?y.push(c):this._index[v]=[c]}return f?(this.entries=l,this):new xe(t,this.keyHash,l)};var De=function(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r};De.prototype.get=function(t,e,r,n){return Zt(r,this.entry[0])?this.entry[1]:n},De.prototype.update=function(t,e,r,n,i,o,u){var s=i===q,a=Zt(n,this.entry[0]);return(a?i===this.entry[1]:s)?this:(x(u),s?void x(o):a?t&&t===this.ownerID?(this.entry[1]=i,this):new De(t,this.keyHash,[n,i]):(x(o),Ne(this,t,e,pt(n),[n,i])))},je.prototype.iterate=xe.prototype.iterate=function(t,e){for(var r=this.entries,n=0,i=r.length-1;n<=i;n++)if(!1===t(r[e?i-n:n]))return!1},Me.prototype.iterate=qe.prototype.iterate=function(t,e){for(var r=this.nodes,n=0,i=r.length-1;n<=i;n++){var o=r[e?i-n:n];if(o&&!1===o.iterate(t,e))return!1}},De.prototype.iterate=function(t,e){return t(this.entry)};var Ae,ke=function(t){function e(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&Ue(t._root)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var r=e.node,n=e.index++,i=void 0;if(r.entry){if(0===n)return Re(t,r.entry)}else if(r.entries){if(n<=(i=r.entries.length-1))return Re(t,r.entries[this._reverse?i-n:n])}else if(n<=(i=r.nodes.length-1)){var o=r.nodes[this._reverse?i-n:n];if(o){if(o.entry)return Re(t,o.entry);e=this._stack=Ue(o,e)}continue}e=this._stack=this._stack.__prev}return{value:void 0,done:!0}},e}(g);function Re(t,e){return w(t,e[0],e[1])}function Ue(t,e){return{node:t,index:0,__prev:e}}function Te(t,e,r,n){var i=Object.create(Ee);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Be(){return Ae||(Ae=Te(0))}function Ke(t,e,r){var n,i;if(t._root){var o={value:!1},u={value:!1};if(n=Le(t._root,t.__ownerID,0,void 0,e,r,o,u),!u.value)return t;i=t.size+(o.value?r===q?-1:1:0)}else{if(r===q)return t;i=1,n=new je(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?Te(i,n):Be()}function Le(t,e,r,n,i,o,u,s){return t?t.update(e,r,n,i,o,u,s):o===q?t:(x(s),x(u),new De(e,n,[i,o]))}function Ce(t){return t.constructor===De||t.constructor===xe}function Ne(t,e,r,n,i){if(t.keyHash===n)return new xe(e,n,[t.entry,i]);var o,u=(0===r?t.keyHash:t.keyHash>>>r)&M,s=(0===r?n:n>>>r)&M,a=u===s?[Ne(t,e,r+E,n,i)]:(o=new De(e,n,i),u<s?[t,o]:[o,t]);return new Me(e,1<<u|1<<s,a)}function Pe(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function We(t,e,r,n){var i=n?t:se(t);return i[e]=r,i}var He=j/4,Je=j/2,Ve=j/4,Fe=16;function Ye(t){if(Y(t)&&"string"!=typeof t)return t;if(H(t))return t.toArray();throw new TypeError("Invalid keyPath: expected Ordered Collection or Array: "+t)}function Qe(t){try{return"string"==typeof t?JSON.stringify(t):String(t)}catch(e){return JSON.stringify(t)}}function Xe(t,e){return P(t)?t.has(e):oe(t)&&F.call(t,e)}function Ge(t,e,r){return P(t)?t.get(e,r):Xe(t,e)?"function"==typeof t.get?t.get(e):t[e]:r}function Ze(t,e){if(!oe(t))throw new TypeError("Cannot update non-data-structure value: "+t);if(P(t)){if(!t.remove)throw new TypeError("Cannot update immutable value without .remove() method: "+t);return t.remove(e)}if(!F.call(t,e))return t;var r=ae(t);return Array.isArray(r)?r.splice(e,1):delete r[e],r}function $e(t,e,r){if(ue(e))return t;if(!oe(t))throw new TypeError("Cannot update non-data-structure value: "+t);if(P(t)){if(!t.set)throw new TypeError("Cannot update immutable value without .set() method: "+t);return t.set(e,r)}if(F.call(t,e)&&r===t[e])return t;var n=ae(t);return n[e]=r,n}function tr(t,e,r,n){n||(n=r,r=void 0);var i=er(P(t),t,Ye(e),0,r,n);return i===q?r:i}function er(t,e,r,n,i,o){var u=e===q;if(n===r.length){var s=u?i:e,a=o(s);return a===s?e:a}if(!u&&!oe(e))throw new TypeError("Cannot update within non-data-structure value in path ["+Array.from(r).slice(0,n).map(Qe)+"]: "+e);var c=r[n],f=u?q:Ge(e,c,q),h=er(f===q?t:P(f),f,r,n+1,i,o);return h===f?e:h===q?Ze(e,c):$e(u?t?Be():{}:e,c,h)}function rr(t,e){return tr(t,e,(function(){return q}))}function nr(t){return rr(this,t)}var ir="@@__IMMUTABLE_LIST__@@";function or(t){return Boolean(t&&t[ir])}var ur=function(t){function e(e){var r=pr();if(null==e)return r;if(or(e))return e;var n=t(e),i=n.size;return 0===i?r:(Ie(i),i>0&&i<j?hr(0,i,E,void 0,new ar(n.toArray())):r.withMutations((function(t){t.setSize(i),n.forEach((function(e,r){return t.set(r,e)}))})))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.prototype.toString=function(){return this.__toString("List [","]")},e.prototype.get=function(t,e){if((t=k(this,t))>=0&&t<this.size){var r=vr(this,t+=this._origin);return r&&r.array[t&M]}return e},e.prototype.set=function(t,e){return function(t,e,r){if(e=k(t,e),e!=e)return t;if(e>=t.size||e<0)return t.withMutations((function(t){e<0?yr(t,e).set(0,r):yr(t,0,e+1).set(e,r)}));e+=t._origin;var n=t._tail,i=t._root,o={value:!1};e>=dr(t._capacity)?n=_r(n,t.__ownerID,0,e,r,o):i=_r(i,t.__ownerID,t._level,e,r,o);if(!o.value)return t;if(t.__ownerID)return t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t;return hr(t._origin,t._capacity,t._level,i,n)}(this,t,e)},e.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},e.prototype.insert=function(t,e){return this.splice(t,0,e)},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=E,this._root=this._tail=this.__hash=void 0,this.__altered=!0,this):pr()},e.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations((function(r){yr(r,0,e+t.length);for(var n=0;n<t.length;n++)r.set(e+n,t[n])}))},e.prototype.pop=function(){return yr(this,0,-1)},e.prototype.unshift=function(){var t=arguments;return this.withMutations((function(e){yr(e,-t.length);for(var r=0;r<t.length;r++)e.set(r,t[r])}))},e.prototype.shift=function(){return yr(this,1)},e.prototype.shuffle=function(t){return void 0===t&&(t=Math.random),this.withMutations((function(e){for(var r,n,i=e.size;i;)r=Math.floor(t()*i--),n=e.get(r),e.set(r,e.get(i)),e.set(i,n)}))},e.prototype.concat=function(){for(var e=arguments,r=[],n=0;n<arguments.length;n++){var i=e[n],o=t("string"!=typeof i&&b(i)?i:[i]);0!==o.size&&r.push(o)}return 0===r.length?this:0!==this.size||this.__ownerID||1!==r.length?this.withMutations((function(t){r.forEach((function(e){return e.forEach((function(e){return t.push(e)}))}))})):this.constructor(r[0])},e.prototype.setSize=function(t){return yr(this,0,t)},e.prototype.map=function(t,e){var r=this;return this.withMutations((function(n){for(var i=0;i<r.size;i++)n.set(i,t.call(e,n.get(i),i,r))}))},e.prototype.slice=function(t,e){var r=this.size;return U(t,e,r)?this:yr(this,T(t,r),B(e,r))},e.prototype.__iterator=function(t,e){var r=e?this.size:0,n=fr(this,e);return new g((function(){var i=n();return i===cr?{value:void 0,done:!0}:w(t,e?--r:r++,i)}))},e.prototype.__iterate=function(t,e){for(var r,n=e?this.size:0,i=fr(this,e);(r=i())!==cr&&!1!==t(r,e?--n:n++,this););return n},e.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?hr(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):0===this.size?pr():(this.__ownerID=t,this.__altered=!1,this)},e}(f);ur.isList=or;var sr=ur.prototype;sr[ir]=!0,sr[O]=sr.remove,sr.merge=sr.concat,sr.setIn=ye,sr.deleteIn=sr.removeIn=nr,sr.update=de,sr.updateIn=ge,sr.mergeIn=le,sr.mergeDeepIn=_e,sr.withMutations=me,sr.wasAltered=we,sr.asImmutable=st,sr["@@transducer/init"]=sr.asMutable=at,sr["@@transducer/step"]=function(t,e){return t.push(e)},sr["@@transducer/result"]=function(t){return t.asImmutable()};var ar=function(t,e){this.array=t,this.ownerID=e};ar.prototype.removeBefore=function(t,e,r){if(0==(r&(1<<e+E)-1)||0===this.array.length)return this;var n=r>>>e&M;if(n>=this.array.length)return new ar([],t);var i,o=0===n;if(e>0){var u=this.array[n];if((i=u&&u.removeBefore(t,e-E,r))===u&&o)return this}if(o&&!i)return this;var s=lr(this,t);if(!o)for(var a=0;a<n;a++)s.array[a]=void 0;return i&&(s.array[n]=i),s},ar.prototype.removeAfter=function(t,e,r){if(r===(e?1<<e+E:j)||0===this.array.length)return this;var n,i=r-1>>>e&M;if(i>=this.array.length)return this;if(e>0){var o=this.array[i];if((n=o&&o.removeAfter(t,e-E,r))===o&&i===this.array.length-1)return this}var u=lr(this,t);return u.array.splice(i+1),n&&(u.array[i]=n),u};var cr={};function fr(t,e){var r=t._origin,n=t._capacity,i=dr(n),o=t._tail;return u(t._root,t._level,0);function u(t,s,a){return 0===s?function(t,u){var s=u===i?o&&o.array:t&&t.array,a=u>r?0:r-u,c=n-u;c>j&&(c=j);return function(){if(a===c)return cr;var t=e?--c:a++;return s&&s[t]}}(t,a):function(t,i,o){var s,a=t&&t.array,c=o>r?0:r-o>>i,f=1+(n-o>>i);f>j&&(f=j);return function(){for(;;){if(s){var t=s();if(t!==cr)return t;s=null}if(c===f)return cr;var r=e?--f:c++;s=u(a&&a[r],i-E,o+(r<<i))}}}(t,s,a)}}function hr(t,e,r,n,i,o,u){var s=Object.create(sr);return s.size=e-t,s._origin=t,s._capacity=e,s._level=r,s._root=n,s._tail=i,s.__ownerID=o,s.__hash=u,s.__altered=!1,s}function pr(){return hr(0,0,E)}function _r(t,e,r,n,i,o){var u,s=n>>>r&M,a=t&&s<t.array.length;if(!a&&void 0===i)return t;if(r>0){var c=t&&t.array[s],f=_r(c,e,r-E,n,i,o);return f===c?t:((u=lr(t,e)).array[s]=f,u)}return a&&t.array[s]===i?t:(o&&x(o),u=lr(t,e),void 0===i&&s===u.array.length-1?u.array.pop():u.array[s]=i,u)}function lr(t,e){return e&&t&&e===t.ownerID?t:new ar(t?t.array.slice():[],e)}function vr(t,e){if(e>=dr(t._capacity))return t._tail;if(e<1<<t._level+E){for(var r=t._root,n=t._level;r&&n>0;)r=r.array[e>>>n&M],n-=E;return r}}function yr(t,e,r){!function(t,e,r){var n=t._origin+(void 0===e?0:e),i=void 0===r?t._capacity:r<0?t._capacity+r:t._origin+r;if(Number.isFinite(i)&&i>gr||Number.isFinite(n)&&n<-gr||Number.isFinite(i)&&Number.isFinite(n)&&i-n>gr)throw new RangeError("Invalid List size: a List cannot hold more than "+gr+" (2 ** 30) values.")}(t,e,r),void 0!==e&&(e|=0),void 0!==r&&(r|=0);var n=t.__ownerID||new D,i=t._origin,o=t._capacity,u=i+e,s=void 0===r?o:r<0?o+r:i+r;if(u===i&&s===o)return t;if(u>=s)return t.clear();for(var a=t._level,c=t._root,f=0;u+f<0;)c=new ar(c&&c.array.length?[void 0,c]:[],n),f+=wr(a+=E);f&&(u+=f,i+=f,s+=f,o+=f);for(var h=dr(o),p=dr(s);p>=wr(a+E);)c=new ar(c&&c.array.length?[c]:[],n),a+=E;var _=t._tail,l=p<h?vr(t,s-1):p>h?new ar([],n):_;if(_&&p>h&&u<o&&_.array.length){for(var v=c=lr(c,n),y=a;y>E;y-=E){var d=h>>>y&M;v=v.array[d]=lr(v.array[d],n)}v.array[h>>>E&M]=_}if(s<o&&(l=l&&l.removeAfter(n,0,s)),u>=p)u-=p,s-=p,a=E,c=void 0,l=l&&l.removeBefore(n,0,u);else if(u>i||p<h){for(f=0;c;){var g=u>>>a&M;if(g!==p>>>a&M)break;g&&(f+=(1<<a)*g),a-=E,c=c.array[g]}c&&u>i&&(c=c.removeBefore(n,a,u-f)),c&&p<h&&(c=c.removeAfter(n,a,p-f)),f&&(u-=f,s-=f)}return t.__ownerID?(t.size=s-u,t._origin=u,t._capacity=s,t._level=a,t._root=c,t._tail=l,t.__hash=void 0,t.__altered=!0,t):hr(u,s,a,c,l)}function dr(t){return t<j?0:t-1>>>E<<E}var gr=Math.pow(2,30);function wr(t){return t<31?1<<t:Math.pow(2,t)}function mr(t){return ze(t)&&H(t)}var br,zr=function(t){function e(t){return null==t?Ir():mr(t)?t:Ir().withMutations((function(e){var r=c(t);Ie(r.size),r.forEach((function(t,r){return e.set(r,t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.prototype.toString=function(){return this.__toString("OrderedMap {","}")},e.prototype.get=function(t,e){var r=this._map.get(t);return void 0!==r?this._list.get(r)[1]:e},e.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this.__altered=!0,this):Ir()},e.prototype.set=function(t,e){return Or(this,t,e)},e.prototype.remove=function(t){return Or(this,t,q)},e.prototype.__iterate=function(t,e){var r=this;return this._list.__iterate((function(e){return e&&t(e[1],e[0],r)}),e)},e.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},e.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),r=this._list.__ensureOwner(t);return t?Sr(e,r,t,this.__hash):0===this.size?Ir():(this.__ownerID=t,this.__altered=!1,this._map=e,this._list=r,this)},e}(Oe);function Sr(t,e,r,n){var i=Object.create(zr.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Ir(){return br||(br=Sr(Be(),pr()))}function Or(t,e,r){var n,i,o=t._map,u=t._list,s=o.get(e),a=void 0!==s;if(r===q){if(!a)return t;u.size>=j&&u.size>=2*o.size?(n=(i=u.filter((function(t,e){return void 0!==t&&s!==e}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=s===u.size-1?u.pop():u.set(s,void 0))}else if(a){if(r===u.get(s)[1])return t;n=o,i=u.set(s,[e,r])}else n=o.set(e,u.size),i=u.set(u.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t.__altered=!0,t):Sr(n,i)}zr.isOrderedMap=mr,zr.prototype[W]=!0,zr.prototype[O]=zr.prototype.remove;var Er="@@__IMMUTABLE_STACK__@@";function jr(t){return Boolean(t&&t[Er])}var Mr=function(t){function e(t){return null==t?Ar():jr(t)?t:Ar().pushAll(t)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.prototype.toString=function(){return this.__toString("Stack [","]")},e.prototype.get=function(t,e){var r=this._head;for(t=k(this,t);r&&t--;)r=r.next;return r?r.value:e},e.prototype.peek=function(){return this._head&&this._head.value},e.prototype.push=function(){var t=arguments;if(0===arguments.length)return this;for(var e=this.size+arguments.length,r=this._head,n=arguments.length-1;n>=0;n--)r={value:t[n],next:r};return this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):Dr(e,r)},e.prototype.pushAll=function(e){if(0===(e=t(e)).size)return this;if(0===this.size&&jr(e))return e;Ie(e.size);var r=this.size,n=this._head;return e.__iterate((function(t){r++,n={value:t,next:n}}),!0),this.__ownerID?(this.size=r,this._head=n,this.__hash=void 0,this.__altered=!0,this):Dr(r,n)},e.prototype.pop=function(){return this.slice(1)},e.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):Ar()},e.prototype.slice=function(e,r){if(U(e,r,this.size))return this;var n=T(e,this.size);if(B(r,this.size)!==this.size)return t.prototype.slice.call(this,e,r);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):Dr(i,o)},e.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Dr(this.size,this._head,t,this.__hash):0===this.size?Ar():(this.__ownerID=t,this.__altered=!1,this)},e.prototype.__iterate=function(t,e){var r=this;if(e)return new $(this.toArray()).__iterate((function(e,n){return t(e,n,r)}),e);for(var n=0,i=this._head;i&&!1!==t(i.value,n++,this);)i=i.next;return n},e.prototype.__iterator=function(t,e){if(e)return new $(this.toArray()).__iterator(t,e);var r=0,n=this._head;return new g((function(){if(n){var e=n.value;return n=n.next,w(t,r++,e)}return{value:void 0,done:!0}}))},e}(f);Mr.isStack=jr;var qr,xr=Mr.prototype;function Dr(t,e,r,n){var i=Object.create(xr);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Ar(){return qr||(qr=Dr(0))}function kr(t,e,r,n,i,o){return Ie(t.size),t.__iterate((function(t,o,u){i?(i=!1,r=t):r=e.call(n,r,t,o,u)}),o),r}function Rr(t,e){return e}function Ur(t,e){return[e,t]}function Tr(t){return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return!t.apply(this,e)}}function Br(t){return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return-t.apply(this,e)}}function Kr(t,e){return t<e?1:t>e?-1:0}function Lr(t,e){if(t===e)return!0;if(!s(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||i(t)!==i(e)||r(t)!==r(e)||H(t)!==H(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!o(t);if(H(t)){var u=t.entries();return e.every((function(t,e){var r=u.next().value;return r&&Zt(r[1],t)&&(n||Zt(r[0],e))}))&&u.next().done}var a=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{a=!0;var c=t;t=e,e=c}var f=!0,h=e.__iterate((function(e,r){if(n?!t.has(e):a?!Zt(e,t.get(r,q)):!Zt(t.get(r,q),e))return f=!1,!1}));return f&&t.size===h}xr[Er]=!0,xr.shift=xr.pop,xr.unshift=xr.push,xr.unshiftAll=xr.pushAll,xr.withMutations=me,xr.wasAltered=we,xr.asImmutable=st,xr["@@transducer/init"]=xr.asMutable=at,xr["@@transducer/step"]=function(t,e){return t.unshift(e)},xr["@@transducer/result"]=function(t){return t.asImmutable()};var Cr,Nr=function(t){function e(t,r,n){if(void 0===n&&(n=1),!(this instanceof e))return new e(t,r,n);if(Se(0!==n,"Cannot step a Range by 0"),Se(void 0!==t,"You must define a start value when using Range"),Se(void 0!==r,"You must define an end value when using Range"),n=Math.abs(n),r<t&&(n=-n),this._start=t,this._end=r,this._step=n,this.size=Math.max(0,Math.ceil((r-t)/n-1)+1),0===this.size){if(Cr)return Cr;Cr=this}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},e.prototype.get=function(t,e){return this.has(t)?this._start+k(this,t)*this._step:e},e.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e<this.size&&e===Math.floor(e)},e.prototype.slice=function(t,r){return U(t,r,this.size)?this:(t=T(t,this.size),(r=B(r,this.size))<=t?new e(0,0):new e(this.get(t,this._end),this.get(r,this._end),this._step))},e.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step==0){var r=e/this._step;if(r>=0&&r<this.size)return r}return-1},e.prototype.lastIndexOf=function(t){return this.indexOf(t)},e.prototype.__iterate=function(t,e){for(var r=this.size,n=this._step,i=e?this._start+(r-1)*n:this._start,o=0;o!==r&&!1!==t(i,e?r-++o:o++,this);)i+=e?-n:n;return o},e.prototype.__iterator=function(t,e){var r=this.size,n=this._step,i=e?this._start+(r-1)*n:this._start,o=0;return new g((function(){if(o===r)return{value:void 0,done:!0};var u=i;return i+=e?-n:n,w(t,e?r-++o:o++,u)}))},e.prototype.equals=function(t){return t instanceof e?this._start===t._start&&this._end===t._end&&this._step===t._step:Lr(this,t)},e}(G),Pr="@@__IMMUTABLE_SET__@@";function Wr(t){return Boolean(t&&t[Pr])}var Hr=function(t){function e(e){return null==e?Qr():Wr(e)&&!H(e)?e:Qr().withMutations((function(r){var n=t(e);Ie(n.size),n.forEach((function(t){return r.add(t)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.of=function(){return this(arguments)},e.fromKeys=function(t){return this(c(t).keySeq())},e.intersect=function(t){return(t=a(t).toArray()).length?Vr.intersect.apply(e(t.pop()),t):Qr()},e.union=function(t){return(t=a(t).toArray()).length?Vr.union.apply(e(t.pop()),t):Qr()},e.prototype.toString=function(){return this.__toString("Set {","}")},e.prototype.has=function(t){return this._map.has(t)},e.prototype.add=function(t){return Fr(this,this._map.set(t,t))},e.prototype.remove=function(t){return Fr(this,this._map.remove(t))},e.prototype.clear=function(){return Fr(this,this._map.clear())},e.prototype.map=function(t,e){var r=this,n=!1,i=Fr(this,this._map.mapEntries((function(i){var o=i[1],u=t.call(e,o,o,r);return u!==o&&(n=!0),[u,u]}),e));return n?i:this},e.prototype.union=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return 0===(e=e.filter((function(t){return 0!==t.size}))).length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations((function(r){for(var n=0;n<e.length;n++)"string"==typeof e[n]?r.add(e[n]):t(e[n]).forEach((function(t){return r.add(t)}))})):this.constructor(e[0])},e.prototype.intersect=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];if(0===e.length)return this;e=e.map((function(e){return t(e)}));var n=[];return this.forEach((function(t){e.every((function(e){return e.includes(t)}))||n.push(t)})),this.withMutations((function(t){n.forEach((function(e){t.remove(e)}))}))},e.prototype.subtract=function(){for(var e=[]